The NEW Build Your Own Arcade Controls

Main => Software Forum => Topic started by: Fyrecrypts on August 21, 2008, 12:33:29 pm

Title: HiToText (Version 2010.11.4).
Post by: Fyrecrypts on August 21, 2008, 12:33:29 pm
Download links:

HiToText w/XML (https://sourceforge.net/projects/hitotext/files/HiToText.zip/download)
HiToText.exe (https://sourceforge.net/projects/hitotext/files/HiToText.exe/download)
HiToText.xml (https://sourceforge.net/projects/hitotext/files/HiToText.xml/download)
What's new (https://sourceforge.net/projects/hitotext/files/whatsnew.txt/download)

Use the hiscore.dat-astic (http://www.hitotext.com/HiScoreDat/index.php) for the most up-to-date hiscore.dat file:

The source is now no longer downloadable, it can be accessed through Sourceforge SVN. Instructions can be found here (https://sourceforge.net/scm/?type=svn&group_id=348457).

Cananas has written up some documentation that is much easier to understand than my rambling posts when implementing an XML entry (They are only a little outdated, the majority of the information is in these documents. See my supplemental posts or the what's new from 4-28-2010 onward):

Schematics (http://www.hitotext.com/HiToText/Schematics.pdf)
Documentation (http://www.hitotext.com/HiToText/HiToText%20XML%20Document.pdf)

HiToText is a command line app that allows you to convert .hi files to text and spits it to stdout.

The current version of the hiscore.dat file we're using to generate the .hi files that we are deciphering is also attached. I'm attaching it mostly so we can ensure that the .hi files being used are the same, and if we decide to add some games that aren't currently supported. (Monster Farm Jump anyone?  ;D )

However, we need help deciphering individual games' hi scores in memory before these can ever be complete.

To decipher a game's memory, start by opening the .hi file for a game in a hex editor such as WinHex, and try and determine how the scores are stored for the game. You can look at NOPs posts below to see a good example of how to explain the game's memory format here so we can convert the explanation into code. Every game can be different, so it's going to take a lot of work, and we'll need help from more than one or two people, so if you want to share your hi scores with all of your friends for your favorite game, do us a favor and decipher it, and we'll include it for you. Below is a list of games we've currently deciphered.

I'm sure more people would like to help if they thought they could, and while recruiting my non-technical brother, I realized I should explain what he does to help me get some of these games decoded just a little bit faster.

Basically, I'm getting pretty good at actually decoding the .hi files. Games like Road Runner (Atari) would be difficult if I hadn't already put the time in on Marble Madness which use the same space saving score and name coding.

Because of this, more of my time getting a game into HiToText is usually ensuring that all the possible characters allowed in the name of the hiscore are taken into consideration. So I'm regularly beating hi scores and putting my name as: ",.-" to see what these characters map out to.

What I've got my brother doing, is beating hi scores, and using every possible character that the game allows, taking a screenshot of all the high scores, and e-mailing those screenshots and the .hi file to me, so I can spend more of my time programming and decoding the .hi file.
One important note about this, I never need all the alpha-numeric scores, usually just "ABZ", "abz", and "019", as every game so far has a pattern for these characters, that make needing "CDE" and so on pretty pointless.

For something like Captain America and the Avengers, the game only stores 5 scores at a time, but has a lot of characters that could not be on the same hiscore table at the same time, so my brother took multiple screenshots, and made copies of the captaven.hi file for those screenshots and sent me an e-mail with this information, deleted the old captaven.hi file and started again with the characters that wouldn't fit in the first hiscore table, I ended up with 4 different captaven.hi files, but was able to capture every possible character allowed with the screenshots.

I'm hoping that some of you that have games you'd like to see decoded would be willing to upload their hiscore screenshots, and .hi OR .nv files to this post. Please zip them up as this board does not actually accept .nv or .hi extensions, and converting these to .txt corrupt them.

A Google spreadsheet is listed here that shows information about what games are deciphered, what games people are working on, and what games we need help with to decipher.

Google Spreadsheet (http://spreadsheets.google.com/pub?key=r1aOWGSATauwVHbhlucsGWQ&output=html)

If you'd like to have access to edit this spreadsheet, as you'd like to do work without someone duplicating it, or have information about a particularly difficult game to decipher, please post here or e-mail me and I will give you access to modify the spreadsheet.

Original post:
Code: [Select]
I'm not entirely sure if this is the right place to ask this, but since the hi score post is stickied in this forum, it made sense to me.

I am looking for a way to covert the .hi files that are generated with the hiscore.dat file into text readable values, such as "NLA, 10000, DEW, 7900".
I've tried doing the conversion myself however I am not versed enough in C to really understand how this data is being written to the .hi file.

I'm reading in the file as byte values, but after that I'm having no luck, I'm hoping someone here has, and knows how to parse these files externally.

My reasoning for this, is I'd like to create a little app that would parse these scores and submit them to a webserver I have,
so my friends and I with MAME could compete against each others scores without sharing a copy of these .hi files.

People I'd like to thank for helping this project (alphabetical order):

Title: Re: .hi file conversion.
Post by: NOP on August 21, 2008, 01:42:03 pm
can you post one of your .hi files here?  I'll take a look at it and I bet we can figure it out, especially if you know what it's supposed to look like to begin with.  Post all the details you can about what the initials and scores are.
Title: Re: .hi file conversion.
Post by: MKChamp on August 21, 2008, 02:34:46 pm
I think the problem is that there is no set format in the file. Games save/load the data in different structures...so, dkong.hi would be different than galaga.hi. A simple example is a game that saves 5 highscores vs. a game that saves 50.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on August 21, 2008, 05:08:41 pm
I've uploaded a random .hi file I have, but I actually don't know the values as I'm at work, and not willing to run MAME. =)

I believe if I can "crack" the encoding I can come up with an algorithm (or heuristic if need be) that can get me what I want.

Edit: I just realized that you could probably find these hi scores on your own, as they are just the default hi scores for 1942.

Edit 2: Removed 1942.hi.txt attachment... It's not really necessary anymore.
Title: Re: .hi file conversion.
Post by: NOP on August 21, 2008, 07:44:55 pm
well, it's starting to unwravel

The default scores for 1941 are:

40000 (c) CAPCOM
35000 ALL
30000 RIGHT   {sic}
25000 RESERVED
20000 EXEDEXES

Looking at the hi file in winhex shows that:
bytes 0 = rank?
bytes 1-4 are the score.  It doesn't appear to be byte swapped.
bytes 5-0dh (maybe?) are a representation of the ascii of the name. 
then it looks there are 3 null bytes and the scores continue. 

Here's the alphabet in hex:
0ah = a
0bh = b
0ch = C
0dh = D
0eh = E
0fh = F
10h = G
11h = H
12h = I
13h = J
14h = K
15h = L
16h = M
17h = N
18h = O
19h = P
1ah = Q
1bh = R
1ch = S
1dh = T
1eh = U
1fh = V
20h = W
21h = X
22h = Y
23h = Z
30h = space
38h = (c)

It'll certainly take some more work deciphering, but that might get something started.  We'd need to look at some more .hi files and see if any of this matches, and if not, MKChamp has accurately predicted our doom.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on August 22, 2008, 09:35:00 am
Edit: Post removed (it had bad/old information)
Title: Re: .hi file conversion.
Post by: Fyrecrypts on August 22, 2008, 01:40:58 pm
Did a little more research on the way the hiscore.dat file is used, and the future looks bleak or long depending on how you look at it.

Every game can store the hi scores and all the other information any way they please, and every game will be different... To the amount of characters allowed for names, to the way the score is stored.

In order to do this correctly, I will need to break down how every single game in hiscore.dat stores it's hi scores in memory.

I'd probably need some help, as there's no way I could do all this on my own.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on August 22, 2008, 02:28:34 pm
Thank you NOP, I've got 1942 working. =)

Now to create a 1942.hi file programmatically, and I'm one step closer to my master plan.

By the way, I'm more than willing to share my code when it becomes more useful, right now it's just a few very hardcoded functions.

When it actually starts actively scanning the hi score directory, submitting scores to an online MySQL database, retrieving scores from the same database, and creating new .hi scores on it's own, it'll be worth releasing.
Title: Re: .hi file conversion.
Post by: NOP on August 22, 2008, 02:48:56 pm
bummer that all the files are different.
Not surprising at all, but disappointing for sure.  I'd think that some games from the same era, manufacturer should be the same.

This is a really cool idea, sorta like having your own private twin galaxies between your friends, all online.  It would be great if not only could a web based scoreboard be displayed for a given game, but having a way for the .hi file to be copied directly to a player's machine whenever there is a new entry.  that way you could be offline, still play to win, then upload your scores/.hi files and have the web server sort and maintain the highest.

I wonder if you could also have just a central repository of .hi files and have MAME itself load/save the file across the network?  That won't get you the online display you want, but it would provide for everyone having the latest scores available...
Title: Re: .hi file conversion.
Post by: MKChamp on August 22, 2008, 03:40:22 pm
FYI...Headkaze had pinged me about a month ago with this exact same idea for a program he was pondering on making. I think the issue is that even if you parse the hiscore.dat file for each game, you don't know how that game then in turn interprets the data internally to make sense of it.

Maybe he can chim in with what he's discovered.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on August 22, 2008, 03:43:20 pm
That's the idea, being able to share the scores. I thought about having it share the .hi files, as that's easy, but if two people are playing at the same time, one person's file would probably overwrite the other, losing the score. This just won't do.

My idea is to do two major things, upload new hi scores to a webserver, and two, take the top scores and recreate the .hi file for anybody with this application, and access to the webserver I specify. No hi scores will ever be lost, and they will be updated whenever someone contributes a new score.

Edit: Yeah, in this case the hiscore.dat file is pretty much useless, except to get some hints about how to parse and recreate the .hi file for each game.
Title: Re: .hi file conversion.
Post by: retrometro on August 24, 2008, 09:43:07 am
I'm definitely interested in an app that can run reports of high scores.  It'll be a lot of work to decipher scores from each game but once that happens, I can see how it can be extended to lots of things.  For example, it would be great to see the top score(s) through a FE like MALA as you browse your games... or a report ran after your FE shutsdown so that upon boot the top scores of your favorite games are displayed.

Title: Re: .hi file conversion.
Post by: NOP on August 24, 2008, 10:02:44 am
By the way, I'm more than willing to share my code when it becomes more useful, right now it's just a few very hardcoded functions.

what are you writing in?  Should help from me come in the form of just deciphering the .hi files, or do you want code written to do the work?  I'm pretty much a C++ programmer only. (well, unless you want to work in x86 assembly, but I doubt that!)

Since this is on a per game basis, we might as well get the most wanted games sorted out first-I suspect not too many people want to share hi scores in Dockman or Disco #1, so can you post your "gotta haves" list?
Title: Re: .hi file conversion.
Post by: Fyrecrypts on August 24, 2008, 10:24:29 am
Well, I've already done a lot of the coding in C#, so I'll probably just do that.

I think getting help with just deciphering the .hi files would be just fine, no need for it to be in code. =)

I also found that I was wrong with some of my scores above, it's not just TOP... I was very tired that morning I guess. I've attached the screenshots of the scores. It looks like they'll be easier to decode than I had originally thought.

Edit: As for games we should decipher first, I'm thinking the classics really: Donkey Kong, QBert, Pac Man, Ms Pac Man, Joust, etc...
Title: Re: .hi file conversion.
Post by: nullb0y on August 25, 2008, 11:28:16 pm
So heres my big idea
Have a server that holds the highest scores
have a script that downloads the scores compares to yours and uploads yours if they are higher
Title: Re: .hi file conversion.
Post by: Fyrecrypts on August 26, 2008, 01:16:41 am
Post #1 and #11...
Title: Re: .hi file conversion.
Post by: headkaze on August 26, 2008, 08:19:00 am
I'm definitely interested in an app that can run reports of high scores.  It'll be a lot of work to decipher scores from each game but once that happens, I can see how it can be extended to lots of things.  For example, it would be great to see the top score(s) through a FE like MALA as you browse your games... or a report ran after your FE shutsdown so that upon boot the top scores of your favorite games are displayed.

This was basically the idea I had and PMed MKChamp about recently. As you guys have already figured out the hiscore.dat only stores/restores a chunk of memory used to hold the hiscores, nothing else.

We would have to write another dat file which took this chunk of memory and broke it up into Player Name / Scores which would be locations in the chunk of memory for each hiscore entry.

The rest is trivial I guess writing software to support the displaying and sharing of hiscores, so yeah the hard part is getting another hiscore dat with all the locations for each hiscore entry.

Here is the hiscore.dat entry
Code: [Select]
; <gamename>:
; <cpu>:<address>:<length>:<value to wait for
; in the first byte/word>:<value to wait for in the last byte/word>

There is also a couple of interesting tutorials (http://www.mameworld.net/highscore/tutorial.htm) on how the hiscore's are obtained.

But for simplicity sake I think NOP's idea is worth a look at. The only problem I see with that is the whole system couldn't be automated. Each .hi file would have to be examined, and what if there are two top hiscores in two different .hi files, there would have to be a way to merge them into one file. So I think even with this idea, you need a new dat file with all the hiscore entries defined. Then there is hope of automating a system like this, as well as being able to display actual hiscores on the website. Also people would have to register 3 character names on the website that will be accepted. Alot of work but I think it's a good idea. Alot of the hard work would be creating this new dat file.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on August 26, 2008, 09:53:09 am
I'm hoping to have the automate stuff done by the end of the week, and you don't want to have one person have just a 3 character name be accepted, at least I don't. If my brother comes over to play, and beats everyone's Dig Dug, I want everyone to see his initials too.

I'm solving this problem, by having the webserver information stored in a settings.xml file and anyone I want to access the hi scores can use the address I give them with the application. As for the new .dat file, I would propose this as a standard:

<gamename>:
<numOfScoresSaved>:
<nameOfStatToBeSaved>:<statToBeSaved>:<#ofbytes>:<someTypeOfByteFormat>
(Repeat the above as necessary for names/initials, rank, scores, floor, character, world, etc...).
<Any important trailing bytes>

Here's the problem though, certain games are not as easy to breakdown as the above. If you look at msword.hi you'll see that there's an extra byte around the third score that I can't account for. It's an extra 0D, I believe, right before where I would guess is the floor reached bytes, and it offsets all the other scores by that one byte. How do you account for that in the above new .dat file? In addition we'd need something to explain the format of the bytes, hi scores themselves are usually just the literal digit representation (despite the bytes being in hex). So the 4 bytes: 00-50-00-00 is 500,000 and not the hex to decimal equivalent: 5,242,880. Certain games allow lower case characters (Super Mario Bros), certain games allow the © symbol (1942), and so on...

I'm thinking it's going to need to be semi-hardcoded for each game, or at least each game that can't be described by the above schema. Like I said, I'm more than willing to share the source when it's completed. In the meantime, if you want a game included in this application, please try and break down the game's method for storing the scores in memory here. The more information you can provide the better, in particular a character mapping to bytes for each allowable character that the game uses for storing names.

I know this is going to take a lot of work, but it has the potential to be a very cool application, and one that everyone can actually help with.
Title: Re: .hi file conversion.
Post by: headkaze on August 26, 2008, 10:27:39 am
Fyrecrypts: Not sure what you mean by the hex issue. If your trying to figure out what bytes do what in the .hi files I suggest you take a look at tutorials on the hiscore dat website and use the Mame debugger to view the data in memory. Although I think in most cases viewing the .hi file in a hex editor (my personal favourite is HxD) should be good enough. There might be some cases where numbers are stored in big endian which will mean the bytes will need reversing. There may be some cases like this where it's difficult to describe in a dat file but it may be possible. Some ways the data is stored could be dependent on the game, the CPU and driver. Some games may use the same format as their parent ROMs.

If you write a program and hard code it, that would be fine, just make it a command line application that can accept a .hi file as a parameter and output the hiscore table to stdout in a standard format. Then with that any FE or software can use this util to grab the hiscore list from a .hi. So I'm not against hard coding it into a program, and lets face it it will be alot easier hard coding each game rather than writing some complex dat file as long as it's maintained I wouldn't even care if the source was released. Come to think of it a dll may be even better, but anyway you get the idea.

Let's not rule out the idea of a dat file though, see how hard it is hard coding it first and after a few games you might realise it would be possible or too hard to make a dat. For now I support the idea of a program and even if we do go for a dat file in the end, the program may even be modified to output the games it supports to a dat. Either way you should learn a few things about how hiscores are stored, and I have a feeling a dat file may be too hard create anyway. Also if we do go the dat file way and it becomes complex to parse it, there seems like no point going that way anyway.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on August 26, 2008, 11:51:47 am
Edit: Post left so the rest of the thread makes sense, but just know this issue was only because .hi files converted to .txt files and then uploaded caused some extra stuff to be included in the file resulting in strange .hi files.

This is the hex issue:

Score:   00-50-00-00- (500,000)
Name:    08-0C-2C- (EGW)
Floor:   00-0C- (might just be 0C) (12)
Rank:    04- (big hulking guy)
Unknown: 00-00-00-00-00-00-

Score:   00-45-00-00- (450,000)
Name:    30-00-1A- (YAN)
Floor:   00-0B- (11)
Rank:    04- (big hulking guy)
Unknown: 00-00-00-00-00-00-

Score:   00-40-00-00- (400,000)
Name:    0E-00-04- (HAC)
Floor:   00-0D-0A- (10) (Why the extra 0D?)

Rest: 04-00-00-00-00-00-00-00-35-00-00-0C-30-1C-00-09-04-00-00-00-00-00-00-00-30-00-00-0E-1C-24-00-08-00-00-00-00-00-00-00-00-25-00-00-04-00-1E-00-07-00-00-00-00-00-00-00-00-20-00-00-04-1C-18-00-06-00-00-00-00-00-00-00-00-20-00-00-04-00-1E-00-05-00-00-00-00-00-00-00-00-20-00-00-04-1C-18-00-04-00-00-00-00-00-00-00-00-20-00-00-04-00-1E-00-04-00-00-50-00-00


As you can see there's an extra byte to describe the floor for the third score, all the other scores line up fine if you break it down in the format I have for the first two scores (4 score bytes, 3 name bytes, 2 floor bytes, 1 rank byte, 6 zero padded bytes). How do you explain in the .dat for that extra 0D?

In addition, the character representation for 'A' is 0A in 1942, but 00 in msword, and it's not just an offset, the character representation in msword for 'G' is 0C, and for 'H' is 0E, what is 0D? in 1942 0D is 'D'. So we would need to have some sort of translation table in the new .dat as well that could convert these values per game.

The app I plan on working on would have the side effect of having an xml file containing all the current codes in the .hi file, but I'm not sure if I'd do the job of breaking it out and making a standalone app/dll file that would convert a .hi file to stdout. That may end up being the best solution however.
Title: Re: .hi file conversion.
Post by: NOP on August 26, 2008, 12:01:11 pm
I agree that you're pretty much going to have to hard-code each game on a case by case basis.  That's not such a bad thing, and if something is worth doing, it's usually worth doing twice, so if we start hard coding now and discover that it's really something that could be explained via a formatting xml, then we change it in later revisions.  Not that big of a deal. 

I'm all for decoding more .hi files; I've just been exceptionally busy the last few days, but count me in for the long haul.

I also like a command line switch type app, so that any FE could access it, but then I'm a DOS guy to begin with. ;)

Unknown bytes in the file I think are also OK at the moment.  Since we're only reading these files to output them to another format, and not generating our own (that's a future project) we just skip the stuff we don't understand.  It'll come around.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on August 26, 2008, 01:03:10 pm
I've whipped up a quick .hi file to stdout/.txt file/whatever, and included the code in case you'd like to add/change outputs.

Edit: App removed here, but can be found in the main post.
Title: Re: .hi file conversion.
Post by: headkaze on August 26, 2008, 05:40:22 pm
Here is a slightly different approach. First change is to use structures to store the data which I think will make it easier in the long run. I also took more of an OOP approach by using a super class that all other game hiscore classes can inherit from. Your welcome to use the code or not but it just shows another method to accomplish the same thing. (It's also in C# my language of choice also) ;)
Title: Re: .hi file conversion.
Post by: Fyrecrypts on August 26, 2008, 05:58:21 pm
That is much better than what I rigged up HeadKaze, I will be using your version from here on out.
Title: Re: .hi file conversion.
Post by: headkaze on August 26, 2008, 06:39:12 pm
That is much better than what I rigged up HeadKaze, I will be using your version from here on out.

No worries, glad your a C# coder as well :) BTW When I was first trying to parse the 1942.hi file I was using the one attached to this thread. I don't know what happened but the file must have got corrupted because I couldn't parse it right using the info NOP provided. Had me stumped for a while. I ended up creating my own 1942.hi in Mame and then I could parse it. Strange, so I don't recommend anyone to use hiscore files posted here as text files. If you do upload a hiscore file it's probably best to zip them up first ;)
Title: Re: .hi file conversion.
Post by: headkaze on August 28, 2008, 02:36:33 am
I just wanted to mention that anyone can help with this. If you read the tutorials on how to view Mame's memory in the debugger here (http://www.mameworld.net/highscore/tutorial.htm) and get yourself a copy of a nice Hex Editor like HxD (http://mh-nexus.de/en/hxd/) all you need to do is find the offsets in the .hi file. Take a look at NOP's post on the format we need then zip up the ".hi" file along with a post with the offsets and me or Fyrecrypts can write the class to deal with the game.

If we don't get people to help do that then this project will probably die. That would be a shame because I think it's a great idea.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on August 28, 2008, 09:04:49 am
I agree with Headkaze completely, there are a tremendous amount of games out there, and it would simply be just too much for even just the two or three of us that have posted in this thread.

On another note, I am fairly close to finishing up the part that actively scans your hi score directory and compares it with an online database of scores. I will post that code as soon as I'm finished as well. When that's done, I will focus more on cracking individual games.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on August 30, 2008, 11:09:07 am
I've discovered a little more about 1942.hi, the scores in the file can basically be arranged in any order and the game uses what we call rank to determine the order.

The last 10 bytes correspond to the high score always displayed. The first of those 10 corresponds to "today's top %", the next 8 is the score, the last byte is the start stage?

In addition, the first of the 3 bytes that we deemed unknown corresponds to the start stage as well (the default scores were all 0).

Also, I have made a lot of progress on my webserver app, and was going to release it today, but after seeing this new info, I need to change some things.

In addition there are 25 scores saved, not 24.
Title: Re: .hi file conversion.
Post by: retrometro on August 30, 2008, 05:12:15 pm
Looking forward to the public beta.


Title: Re: .hi file conversion.
Post by: headkaze on August 31, 2008, 09:47:27 am
Hey Fyrecrypts I was just thinking perhaps we should put out a request for people to post thier .hi files if they have a decent hiscore or progression in a game. If we get hiscores that are at higher levels it will probably help deduce what some bytes are for.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on August 31, 2008, 11:34:36 am
Yeah, anything to help. =) It looks like using initial .hi files is going to be misleading like it was for 1942. It's going to take a combination of new and older .hi files, and watching them change to really know what's going on.

In addition, I have attached the source and executable for my webserver app. If you do not have webspace you can use with MySQL what I've given may seem kind of pointless. I debated about sharing my webspace for everyone, and just figured it was too easy to abuse, but I've included the php files that I'm using on my webserver and I'll share the database schema I used.

First, I know that what I've written can be programmed better, I didn't go through and optimize the code like I would've had it been a professional application, I work full time, and have a 6 month old son, so programming time right now is very rare. =) Second, I put absolutely no error handling, and have not included many standard features that should come with this again because of my lack of time, but that's why I share the code, so someone else with more time can improve on what's there.

Now, the database schema I used was naming tables in my database by the name of the game, in this case 1942. I had fields for each field stored in the .hi file, so for 1942 it's Rank, Score, Name, and Stage. In addition, I added my own field of TimeAdded as this is something I want to expand on later. That's pretty much it for the database schema.

Lastly, enjoy! And now we need to get the other games .hi files cracked!

Edit: App removed here, but can be found in the main post.
Title: Re: .hi file conversion.
Post by: NOP on September 02, 2008, 07:19:32 pm
here's file info for galaga.hi:

Bytes 0-5  = score #1
Bytes 6-B = score #2
bytes c-11 = score #3
bytes 12-17 = score #4
bytes 18-1c* = score #5
Byte 1d = 24h
Bytes 1e-20 = 3 initials for score #1
bytes 21-23 = 3 initials for score #2
etc.
Then 6 bytes where the hi score is repeated, same formatting as byes 0-5.


* yes, that's only 5 bytes for the last score, and 6 for everyone else.  I don't quite understand how that worked out, and that 24h is not a part of the #5 score.   I'm not sure if the scores are variable size, or what the deal is to explain that. 


Scores are stored in reverse byte order, but are binary coded decimal.
In other words, the score of 605690 (my own hi score woo!) ends up being coded like this:

Byte 0: 00
Byte 1: 09
Byte 2: 06
Byte 3: 05
Byte 4: 00
Byte 5: 06


The initials use the same alphabet method as in 1942.
Title: Re: .hi file conversion.
Post by: NOP on September 02, 2008, 07:54:20 pm
donkey kong (dkong.hi)

Looks like each player's data is 22h bytes each:

bytes 0-4 = Looks like some pattern, for me it's 94,77,01,23,24
bytes 5,6 = 10h,10h
bytes 7-0c = score #1
bytes 0d, 0e = 10h,10h
bytes 0f-11 = initials #1
bytes 12-1a (9 bytes) are all 10h
bytes 1b = 3Fh
bytes 1c,1d = 00
bytes 1e-21 (for me) were 93,02,f4,76

Then it starts for #2:
bytes 22-26 = some patterny thing again - 96, 77, 02, 1e, 14
bytes 27,28 = 10h,10h
bytes 29-2e = score #2
bytes 2f-30 = 10h,10h
bytes 31-33 = initials #2
bytes 34-3c (9 bytes) = 10h
byte 3d = 3fh
bytes 3e, 3f = 00
bytes 40-43 (for me) were 76, 02, f6, 76

#3's patterny thing is: 98, 77, 03, 22, 14

I think it's obvious that the 3rd byte there is the rank.


initials are stored like this:
11h= A
12h= B
13h= C
14h= D
15h= E
16h= F
17h= G
18h= H
19h= I
1ah= J
1bh= K
1Ch= L
1dh=M
1eh=N
1fh=O
20h=P
21h=Q
22h=R
23h=S
24h=T
25h=U
26h=V
27h=W
28h=X
29h=Y
2ah=Z

Scores were stored in BCD format, not byte swapped.
So score #1 was 029300 and stored in bytes 7-0c as: 00,02,09,03,00,00

Title: Re: .hi file conversion.
Post by: Fyrecrypts on September 02, 2008, 08:32:50 pm
Good timing, I just fixed up 1942, it's complete. I also fixed a bug with some scores not being correctly uploaded. I removed the old version above, and attached the new. I'll try and get to the new games NOP deciphered tomorrow, thanks!
Title: Re: .hi file conversion.
Post by: headkaze on September 02, 2008, 09:39:55 pm
Here's a start on the galaga class. There is more to that 0x24 byte than first realised. For example have a look at a freshly created galaga.hi and every score has 0x24 on the last byte of the score. Right now I just ignore the 0x24 byte, so we will have to figure out what it means and deal with it eventually.
Title: Re: .hi file conversion.
Post by: NOP on September 02, 2008, 09:46:46 pm
donkey kong jr (dkongjr.hi)

very similar layout:


bytes 0-4 = Same patterny pattern, for me it's 94,77,01,23,24
bytes 5,6 = 10h,10h
bytes 7-0c = score #1
bytes 0d-12 = 10h
bytes 13-15 = initials #1
bytes 16-1a (9 bytes) are all 10h
bytes 1b = 3Fh
bytes 1c,1d = 00
bytes 1e-21 (for me) were 76, 02, f4, 76

Then it starts for #2:
bytes 22-26 = some patterny thing again - 96, 77, 02, 1e, 14
bytes 27,28 = 10h,10h
bytes 29-2e = score #2
bytes 2f-34 = 10h
bytes 35-37 = initials #2
bytes 38-3c (5 bytes) = 10h
byte 3d = 3fh
bytes 3e, 3f = 00
bytes 40-43 (for me) were 39, 02, f6, 76

#3's patterny thing is: 98, 77, 03, 22, 14

so, same patterny thing as DK.  makes sense, but interesting that it doesn't change at all between these 2 games.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on September 03, 2008, 12:57:39 pm
For Galaga, I'd guess that the 6th byte in the score if it's not a 6 digit score is going to be 0x24, so we can safely ignore the 6th byte in a score if it's this value, otherwise it's the hundred-thousand digit.

I am at work and can't do testing on this, but I have a feeling it's a blank hex value so when galaga is displaying the scores it doesn't show a leading 0 for 5-digit hi scores.

Edit: Each of these hex values represents some sprite graphics to display. The programmers probably decided to map 0x00 to the graphics for a '0' and so on. I believe 0x24 maps to a space (' '). Put a 0x24 in the middle of a score and I'd bet it shows up in the score as a space.
Title: Re: .hi file conversion.
Post by: NOP on September 03, 2008, 02:54:44 pm
correct me if I'm wrong, but I don't think pacman and mspacman have hi score files.  there's no top 5 anyway, just the highest score since power up.  No initials are ever entered.

joust didn't seem to have one either-it does have an nvram file though, so I suspect defender and stargate, probably robotron will be similar.

IIRC, qbert also doesn't have a .hi file.

I may also be using an outdated copy of mame for my research, which could explain some of these missing files.

if you have any other requests, let me know, otherwise I'll just decipher some that look easy. ;)

Title: Re: .hi file conversion.
Post by: Fyrecrypts on September 03, 2008, 02:55:45 pm
I've decided I'm willing to open up my webspace for people to use the hi-score scanner app. If you PM me, I'll PM back the details, I'd like to do it this way so I can keep track of how many people have the info, I really don't have a ton of bandwidth so I have to pretty strictly regulate this. Sorry. =/

Edit:

NOP: Yeah, certain games don't use .hi files, I mentioned a few specific games without checking the .dat file. mspacman however does use .hi files, but like you said it only stores one score so it should be pretty easy, in fact I think the whole file is only 11 bytes.

You can see which games would create .hi files by looking in the hiscore.dat file (just open it up in any text editor). For mspacman the .dat file shows:
00:4E88:04:00:00
00:43ED:06:40:40
00:43D1:01:48:48

The third value, delimited by colons, is the only really important thing to us, as it shows how many bytes are used, all three of these memory locations let us know that there are 11 bytes in a .hi file, and probably 3 distinct pieces of information for us to use.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on September 03, 2008, 05:38:43 pm
Corrected galaga to account for the 6th byte, and I also whipped up msword.

Edit: Finalized msword. Galaga is finalized a few posts down.

Edit 2: File removed, and put into the main post.
Title: Re: .hi file conversion.
Post by: TheShanMan on September 03, 2008, 06:43:20 pm
joust didn't seem to have one either-it does have an nvram file though, so I suspect defender and stargate, probably robotron will be similar.

Defender does indeed have nvram (the batteries are a big source of problems for defender boards!), so I'm sure the others do as well.
Title: Re: .hi file conversion.
Post by: NOP on September 03, 2008, 10:10:44 pm
mspacman.hi

my hi score = 40920

shows up as:
byte 04=00
byte 05=02
byte 06=09
byte 07=00
byte 08=04

the entire file (11 bytes) is:
20 09 04 00 00 02 09 00 04 40 48

so it's possible that the score is also in bytes 0-2
------------
Looks like pacman.hi has the exact same layout.

Think we can assume that all clones are also using the same layout?  We may have just nailed about 12 more games if puckman=pacman=pacman(hearts)=hangly man...


   
Title: Re: .hi file conversion.
Post by: NOP on September 03, 2008, 10:29:47 pm
mrdo.hi

bytes 0-2 = score #1, so a score of 16300 appears as: 01 63 00 (not sure about higher scores)
bytes 3-5 are initials, same alphabet as 1942.  29h=space character
byte 6 = scene #
byte 7,8 = time, so 1'34" appears as: 01 34
byte 9 = ?

repeat for all 10 scores.

Title: Re: .hi file conversion.
Post by: NOP on September 03, 2008, 10:44:06 pm
mappy.hi

bytes 0-3 = score, score of 19870 = 00, 19, 87, 00
bytes 4 = round #
bytes 5-7 = initials.
repeat for next highest

5 scores total are stored.

alphabet starts at 41h = 'A' --> 5A = 'Z'

Title: Re: .hi file conversion.
Post by: Fyrecrypts on September 05, 2008, 11:20:36 am
Here's Donkey Kong, it works, but I have a feeling we're missing something.

While working on Ms. Pac-man, I noticed that the game uses 0x40 for it's blanks for scores less than 5 digits. in bytes 4-8. Bytes 0-2 is also the score in a different format. I have no idea what byte 3, and the last two bytes are used for.

Edit: Removing attachments, dkong.cs can be found in the attachment on the first post.
Title: Re: .hi file conversion.
Post by: NOP on September 05, 2008, 01:24:58 pm
Byte 3 may very well be the 6th digit in a score for mspacman.
since my score of 40920 was:
20 09 04 00 00 02 09 00 04 40 48

It makes sense that byte 3 would be the uppermost digits.

I was thinking that since there seems to be a lot of games that use the same alphabet as 1942, it might be pretty easy to write a simple scanner to go through *.hi and see if it can print out strings using any values in the 0ah-24h range.   If the program spit out readable messages, then we've not only got another game that uses the same sequence, but also a starting point on the locations of all the initials storage locations.

I could likely write something if what I'm describing only makes sense to me. ;)


Title: Re: .hi file conversion.
Post by: Fyrecrypts on September 05, 2008, 01:55:46 pm
Couldn't figure out byte 3, but byte 9 is definitely the 6th digit for the score, I've attached the changes.

Edit: Just to clarify, I'm starting my count with byte 0, so byte 3 is actually the 4th byte in the file, just as it's displayed in WinHex.

And I like the idea, it should be really useful, I'm going to try and get mrdo and mappy done today, so if you want to work on it go ahead. =)


Edit 2: Removing attachments, pacman.cs can be found in the attachment on the first post.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on September 05, 2008, 02:15:24 pm
Finalized Galaga.


Edit: Removing attachments, galaga.cs can be found in the attachment on the first post.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on September 06, 2008, 11:09:58 am
Finalized Mr. Do

Edit: Removing attachments, mrdo.cs can be found in the attachment on the first post.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on September 06, 2008, 12:07:03 pm
Mappy will be... unique, it stores 5 scores like you said NOP, the first three bytes are the scores and it multiplies that by 10, so 00 20 00 is 20,000. The next two are the stage reached. 02 63 is stage 263. And the last three are initials.

The weirdest part is with the top score, it's stored in the last 11 bytes where the hundred-thousand digit is byte 9 of these 11, ten-thousand is byte 11, thousand is byte 10, hundred is byte 6, tens is byte 5, and ones is byte 4. As far as I can tell the other bytes are just filler bytes.

So 00 00 00 05 06 07 00 00 09 08 07 would be: 978,765. However, as far as I can tell, there is no way to get anything other than multiples of 10 as a score anyway. So the ones byte is kinda useless.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on September 06, 2008, 07:40:26 pm
Finalized Mappy.

Edit: Found a quick bug that needed to be fixed.
Title: Re: .hi file conversion.
Post by: headkaze on September 06, 2008, 07:53:37 pm
I was just thinking Fyrecrypts rather than posting a new class each time you add a new game maybe you could just edit your first post with the latest program and all the game classes included? I'd like to keep up with project and have a local copy of everything so I can help out if I can.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on September 06, 2008, 08:01:05 pm
Yeah, that makes the most sense, I'll do that now actually. =)
Title: Re: .hi file conversion.
Post by: headkaze on September 06, 2008, 08:05:19 pm
Yeah, that makes the most sense, I'll do that now actually. =)

Sweet. I just deleted all my attachments from this thread. If I do help out with a class I'll upload it then remove it once you've got it :cheers:
Title: Re: .hi file conversion.
Post by: Fyrecrypts on September 06, 2008, 10:33:33 pm
From now on, I will also only be updating the original post with new games that are deciphered. Please use the list in that post to determine what game you'd like to decipher to avoid duplicating work.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on September 15, 2008, 02:29:04 pm
Added a new version for HiToText, and HiScanner, made a lot of internal changes to HiScanner, and made it easier to add new games, so I'll probably stop updating the core code aside from some logging and exception handling.

I'll probably just start adding games' .cs files when I get them done, and the rest should be pretty easy. Maybe I'll make .exe files every week or so with new stuff.
Title: Re: .hi file conversion.
Post by: headkaze on September 16, 2008, 10:17:23 pm
Great work Fyrecrypts & NOP  :cheers:

How hard are some of the games to decypher are some very difficult?
Title: Re: .hi file conversion.
Post by: Fyrecrypts on September 16, 2008, 10:55:17 pm
Not usually really, it's just a little time consuming to turn into a .cs file, or games that have a ton of valid characters for names.

DoDon Pachi is really weird... the last digit of the high scores are separated from the rest of the values, there are extra blank characters between used alpha characters which are always multiples of 4 (i.e. 'A' is 0x84, 'B' is 0x88), but didn't take more than an hour for me to completely decipher (coming soon). I've actually been spending more time trying to figure out how to add games to the hiscore.dat. In particular Klax and Mr. Driller. Both would be great games to have high scores for. =)
Title: Re: .hi file conversion.
Post by: NOP on September 17, 2008, 09:29:51 am
sorry I've slipped behind in my conversions.  I'll be back on the trolley soon.
I scanned all of my existing .hi files for my own high scores (18h,19h,20h == NOP) but didn't come up with any new ones. So either there aren't many more that have that commonly used alphabet, or my gameplaying sucks!  I believe it to be the latter.


Title: Re: .hi file conversion.
Post by: Fyrecrypts on September 17, 2008, 09:40:44 am
Hahahaha, no your gameplaying is fine =). I'm sure pretty much every game is different. Of the 12 game files we have done, only 2 pairs actually share the same basic a-z letters. No games share the additional punctuation or symbols allowable in names yet.

What I should do is allow other games that use the same memory mapping in the hiscore.dat file to be included in the same way that pacman and mspacman are done. I just don't want to go through all the extra clones, like mrlo and yankeedo for mrdo, and ensure that although they use the same memory range, it's not encoded differently, like bytes being reversed or something like that.

I imagine we could add around 40-50 more games, although they'd just be clones.
Title: Re: .hi file conversion.
Post by: NOP on September 22, 2008, 09:24:25 pm
here's zaxxon, I think:

Alphabet starts with A=11h
Appears that a space character is 10h

offset 0-1 ? - (mine are 90,83)
offset 2 = rank? (01)
offset 3 = ?  (10h) -
offset 4,5,6,7,8,9 = score (009700 is 00,00,09,07,00,00)
offset A - (10h)
offset B,C,D = Initials
offset E = 3F (some kind of end character)
offset F = 00 (could be part of the score)
offset 10-12 = score again 009700 is now encoded as 00,97h,00
offset 13, 14 = ? (mine are 50h,83h)

Repeat for ranks 2-6





Title: Re: .hi file conversion.
Post by: NOP on September 22, 2008, 09:37:48 pm
Galaxian appears to be high score only, and it's just the bytes themselves. 

A score of 1250 shows up as 50,12,00 in the file.

and that's it!
Title: Re: .hi file conversion.
Post by: NOP on September 22, 2008, 09:51:30 pm
donkey kong (dkong.hi)

Looks like each player's data is 22h bytes each:

bytes 0-4 = Looks like some pattern, for me it's 94,77,01,23,24
bytes 5,6 = 10h,10h
bytes 7-0c = score #1
bytes 0d, 0e = 10h,10h
bytes 0f-11 = initials #1
bytes 12-1a (9 bytes) are all 10h
bytes 1b = 3Fh
bytes 1c,1d = 00
bytes 1e-21 (for me) were 93,02,f4,76

Then it starts for #2:
bytes 22-26 = some patterny thing again - 96, 77, 02, 1e, 14
bytes 27,28 = 10h,10h
bytes 29-2e = score #2
bytes 2f-30 = 10h,10h
bytes 31-33 = initials #2
bytes 34-3c (9 bytes) = 10h
byte 3d = 3fh
bytes 3e, 3f = 00
bytes 40-43 (for me) were 76, 02, f6, 76

#3's patterny thing is: 98, 77, 03, 22, 14

I think it's obvious that the 3rd byte there is the rank.


initials are stored like this:
11h= A
12h= B
13h= C
14h= D
15h= E
16h= F
17h= G
18h= H
19h= I
1ah= J
1bh= K
1Ch= L
1dh=M
1eh=N
1fh=O
20h=P
21h=Q
22h=R
23h=S
24h=T
25h=U
26h=V
27h=W
28h=X
29h=Y
2ah=Z

Scores were stored in BCD format, not byte swapped.
So score #1 was 029300 and stored in bytes 7-0c as: 00,02,09,03,00,00

Crazy Kong is using the same data, except:
bytes 0-4 = Looks like some pattern, for me it's 94,93,01,23,24
bytes 5,6 = FDh,FDh
bytes 12-1a (9 bytes) are all FDh
bytes 1e-21 (for me) were 89,03,f4,76
Title: Re: .hi file conversion.
Post by: NOP on September 22, 2008, 10:17:16 pm
Major havoc:
Starts out with 10 sets of initials, for a total of 1dh bytes.

Alphabet starts with A=0Bh, B=0Ch, C=0Dh etc.
Space character is 0Ah
 
Then 10 scores, 4 bytes each.
A score of 94532 is represented as:
Offset 1eh = 32h
Offset 1fh =  45h
Offset 20h =  09
Offset 21h =  00

The interesting thing is that the very last byte in the file is 80h.  that should be the MSB of the 10th score, but 80005240 is a damn high score, so I assume that bit 7 is used as an "end of file" flag.


Title: Re: .hi file conversion.
Post by: Fyrecrypts on September 25, 2008, 10:58:41 am
Very cool, thanks NOP. I have Galaxian and Zaxxon done, I might need to do some manipulating to see if the 3 and F bytes are also a part of the score, I'm at work now and can't do the check. Strange thing about Zaxxon, 0x60 is also a space character used if you end the initials before using all 3. For example, ".- " was "2B 2C 60". Crazy old games.

I'll probably finish Crazy Kong and Major Havoc, and then I'll recompile both HiScanner, and HiToText.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on September 26, 2008, 01:21:36 pm
Uploaded new versions, now we have something like 18 games or so figured out. I've also done some more work on the "kong" games: dkong, dkongjr, and ckong. I figured out the score is also stored in a short reverse byte form, so I've added that.

Donkey Kong Jr looks wrong in the hiscore.dat file, and I'm thinking of fixing it. For the first score it's missing the first 5 bytes that scores 2-5 have, and the 5th score is missing 7 bytes after the 5 unused bytes after the name, which includes the short score, so I'm tempted to fix it in the hiscore.dat file.
Title: Re: .hi file conversion.
Post by: NOP on September 26, 2008, 05:08:24 pm
Quote
Donkey Kong Jr looks wrong in the hiscore.dat file, and I'm thinking of fixing it. For the first score it's missing the first 5 bytes that scores 2-5 have, and the 5th score is missing 7 bytes after the 5 unused bytes after the name, which includes the short score, so I'm tempted to fix it in the hiscore.dat file.

now that's interesting and something I'd never even considered, that the data we're handed from hiscore.dat might also be wrong.  ouch.  garbage in, garbage out.

Good job! 

I'll likely have a moment to decode a couple more this weekend.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on October 06, 2008, 09:38:45 pm
Little update for anyone watching this thread (might just be you NOP.  ;) )

I've added a few more games: Raiden, Marble Madness, Wonder Boy 3. I discovered a few bugs here and there that I'm still in the process of fixing, I want to add catlist.ini support, and I would like to overhaul the UI a little bit more.

Not sure how long I'll be putting up the source as it just seems to be a waste of time, so I might just put up the executables, I'm not really sure.

BTW, Marble Madness name/score format is weird...
Title: Re: .hi file conversion.
Post by: headkaze on October 06, 2008, 09:46:25 pm
There are people watching this thread (in fact I was looking at it earlier today just didn't post) and there are people interested in using the source code so please keep posting it and keep the project going.

I might be able to get that webspace afterall, I was talking about it this morning. I'll PM you with more info when I get it.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on October 06, 2008, 09:51:10 pm
Oh good, as long as it's useful.

I'll throw up the updates when I feel I'm at a reasonable bug-free point.
Title: Re: .hi file conversion.
Post by: tspeirs on October 07, 2008, 03:26:16 am
Hi Firecrypts.

As HK says, I just bought another server, and am now able to give you the .net hosting, and help with whatever you need in regards to that. More than happy to do it.

I prefer to do things by email, so drop me a note that way.

Tom.
Title: Re: .hi file conversion.
Post by: tspeirs on October 07, 2008, 03:34:42 am
I also have a coding suggestion which I think will help ensure success going forward, meaning less work for you and updating the source code less, and that is not to code the decipering in c# classes, but code a binary processing api in the app and a basic scripting format for decipering each game. Say each game would have a .hid file, which would be a little script that the app uses to process the binary data. From what I can make out from the completed games this should be doable. Youd basically have an algorithim/script for each game in a .hid file. So the source code would only be updated when the algorithim/scripting support needed to be improved to support a particular game. Im a software architect, and thats what Id recommend from a top level perspective. Although I know talking is easier than doing.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on October 07, 2008, 12:51:57 pm
I'm not against the idea, as I'm sure it would allow a larger number of people to contribute. The only problem is so few games so far haven't required some sort of weird totally different piece of code here or there to work correctly. Marble Madness uses 2 bytes to store 3 characters for the name, 1942 stores the scores in whatever order it feels like storing them and using a byte to determine where it shows up on the list of scores, some games like Donkey Kong Jr. aren't symmetrical when it comes to scores, and the list goes on. :(

It would be an ideal solution if we could come up with a format that could deal with these quirks, some sort of byte mapping solution maybe. For example take Marble Madness. It's a 50 byte file with the current hiscore.dat, and stores 10 scores. It could be listed in a .hid file as:

"0-2", "Score1", "Reverse,HexToInt"
"3-4", "Name1", "MarbleName"
"5-7", "Score2", "Reverse,HexToInt"
....
"2E-30", "Score10", "Reverse,HexToInt"
"31-32", "Name10", "MarbleName"

While this seems like overkill matching up every single byte, it's probably necessary. If this seems like something everyone thinks is a good idea, I'll see what I can do to start implementing this. However, I still think certain games would have to be completely custom (1942).
Title: Re: .hi file conversion.
Post by: NOP on October 07, 2008, 01:17:27 pm
you could also hybrid it.

Games that are simple, or identical (like all the pacman clones) could all have .hid files, others that are wonky have custom code for deciphering.  As long as it's all open source in the end, I really don't mind either way it goes, since we're not losing any data.  I'd think that anyone able to read/write a .hid file is likely also to have enough skill to read/write actual code.

Title: Re: .hi file conversion.
Post by: Fyrecrypts on October 07, 2008, 01:24:55 pm
I tend to think the same way NOP, but code can be intimidating to learn for those that don't I suppose, whereas a .hid file would be a csv file basically.

I dunno, I think it could be worth it, many of the old 80's Nintendo games or games based off Nintendo games(Donkey Kong, Donkey Kong Jr, Crazy Kong, Mario) are all very similiar, and probably could be done easily in a .hid file.

It'd be a lot of work converting the 23 files we have to use this system, but for the 1000's of games left to decode, it could ultimately save a lot of time.
Title: Re: .hi file conversion.
Post by: MustardTent on October 07, 2008, 02:53:04 pm
I did something like this a few years back with another member here.  If you're interested, here's a spreadsheet (http://www.geocities.com/pkurby1/highscore_spread_tues.xls) with some of our findings.

Good luck, there's lots of games to decode.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on October 08, 2008, 08:46:46 pm
Thank you MustardTent that does help, I'll try and add these games as I find time.

On that same note, I'm not sure if I'm going to have the time to completely revamp to use a .hid file, but I still think it's a good idea to probably do. I'm in the middle of changing up the UI a little bit (nothing major, just adding some things I think should be added), and I've got some other games I'd like to add pretty soon as I am using this with many of my friends and they have some requests I want to get in for them. After that's done, I'll do what I can about converting everything to a .hid format, unless someone else gets there first I guess.
Title: Re: .hi file conversion.
Post by: headkaze on October 08, 2008, 10:50:52 pm
Creating our own scripting language was sort of what we were talking about when we realised that a dat file would not be enough to describe how to encode and decode a hi file.

Playing with some of the code to decypher in the beginning I think it would be hard to write our own scripting language to do it. In fact I'm sure there will be games in the future that will be even harder to decypher. Having the full C# language at our disposal ensures we don't need to keep updating the scripting language which would require the binary to be updated and distributed every time which sort of cancels out the benefits it would bring.

It's possible to have the decyphering in C# scripts and compile them at runtime, but I don't actually see any great time saving benefits, as it only takes a moment to compile the whole program again, and upload to the forum.

Another option would be to move the decyphering into lua scripts, but again I don't see a huge benefit going that way, and let's face it two of us here are C# coders (me and Fyrecrypts), and one is VB.NET (tom) and the other is C++ (NOP).

I have some experience in implementing C# scripting so let me know if your serious about going that way. But to be honest I don't see any great benefits.

If anything I would prefer to go with dll's for each game, that way we could have both managed and unmanaged dll's that share a common API. I have experience creating a plugin system that supports both managed and unmanaged dll's so I'm happy to share code on how to do that. That being said compiling each one as a dll is more time consuming than the current method because each dll would have to be it's own project in VS - so I don't see any time saving benefit there either except that we could have more people writing the code to decypher, but lets face it, the coding is not the hard part, it's decyphering all the games. It's interesting to mention though, the more I played around with the code in the beginning I started thinking it would actually be easier to use C++ with structs and pointers than C#! (Hey no language is perfect I guess)

As long as the project stays open source so it doesn't dissappear with us stuck with the binaries; then I'm happy to stay with the C# classes. But I'm still open to suggestions though and what I wrote is just IMHO.
Title: Re: .hi file conversion.
Post by: NOP on October 09, 2008, 10:12:04 am
Quote
I am using this with many of my friends and they have some requests I want to get in for them.

post those requests and I'll chip in too.  I didn't see anything on the 1st post about what games we're hoping to support.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on October 09, 2008, 10:35:42 am
Sure, I'll update it right now actually. I've also put up a new HiScanner, and new HiToText with the most recent games deciphered.
Title: Re: .hi file conversion.
Post by: tspeirs on October 10, 2008, 01:11:01 pm
By the way Firecryps, feel free to contact me if youd like the hosting. Didnt hear anything from you but I just assume you've not got round to it or are not ready yet.

Cheers.
Tom.
Title: Re: .hi file conversion.
Post by: Fyrecrypts on October 10, 2008, 10:06:32 pm
DigDug and Burger Time .cs files posted, and I've talked with Tom about getting some webspace so HiScanner can be more easily used.

Again, thanks very much Tom, I think this will help out this project quite a bit.
Title: Re: .hi file conversion.
Post by: NOP on October 12, 2008, 11:34:43 am
moon patrol:

Looks pretty simple:
Score is in the first 3 bytes of the file.  My score of 006010 shows up as 10,60,00.
Byte 3 is (I believe) the zone # reached.  I made it to zone F, and the value in byte 3 was a 6.
Bytes 4-29h are 00 for me.
Byte 2A contained a 72h, and that was the record speed reported (72 seconds, so it's decimal) when I finished the beginner level. 

There are likely other records stored in other bytes though, but I'm not really good at the game, so I can't get 'em broken!


Title: Re: .hi file conversion.
Post by: NOP on October 12, 2008, 12:15:48 pm
donkey kong 3 (dkong3.hi)

5 entries total.
I think the first entry may be incorrect from hiscore.dat-it's confusing. (see below)

scores 2-5 are defined as such:
4 mystery bytes
then 3 bytes in ascii show the rank "2ND" "3RD" etc
Then 40h,40h
then the score in ascii, 6 bytes (score of 012000 is: 30,31,32,30,30,30)
then 40h,40h
then 3 bytes of initials, also in ascii
then 9 bytes of 40h
then a 7F
the score is then stored again in BCD in 4 bytes: (00 00 20 01 For the above score)

the 4 mystery bytes for 2nd, 3rd, 4th and 5th are:
53,76,f5,76
55,76,f7,76
57,76,f9,76
59,76,fb,76 


the problem is that score #1 doesn't have the ascii "1ST" as part of the standard definition, and in fact has 5 mystery bytes before the 40h,40h.  The 5 mystery bytes are: F3,76,E8,E2,E5 which almost follows the rest of them, but not quite.  I dunno.


There is some straggling data after the last score too.  It looks like the last 4 bytes in the file are BCD top score, but I don't have anything to go off for the 30h+ additional bytes between the last score and the last 4 bytes.

it's cornfusing, but it's a start.





Title: Re: .hi file conversion.
Post by: Fyrecrypts on October 13, 2008, 07:11:03 pm
Gigawing, Donkey Kong 3, and a fix to Do Donpachi .cs files added.

Edit: Took a look at moon patrol, and NOP is pretty dead on, we're gonna need someone who's good at moon patrol to decode everything. Preferably someone who has beaten it. Byte 2A is the time to stage 'E', byte 28 is the time to stage 'J'. They get set from 00 when that stage is passed, if your time is not better than the default best time for that stage, then that time is stored in it's respective byte.

If my math is right, there are 20 checkpoints like this to be stored? This is going to be interesting as this isn't really a typical high score file, so some new coding is going to be needed.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on October 16, 2008, 10:37:52 am
Added Ghosts N' Goblins, updated HiScanner and HiToText source attachments.

I've also put up seperate compiled versions of the application in case people didn't know to look in the bin/Debug directories of the source.

Also, I've realized that the .nv files that MAME generates for certain games, most notably older Atari games (Paperboy, 720), contain hi score data as well, so I'll be implementing some nv file parsing soon as well. Probably for the above games, so if anyone would like to help parse .nv files for games that don't have .hi files, we can use those too for this project.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: NOP on October 16, 2008, 05:47:28 pm
>if anyone would like to help parse .nv files for games that don't have .hi files, we can use those too for this project.

isn't joust one of those .nv only games too?  I know that's on the top of the list for sharing score files.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on October 16, 2008, 06:05:07 pm
Probably, and Defender as well I'd imagine.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: headkaze on October 16, 2008, 06:22:28 pm
Fyrecrypts: Maybe HiToText should be updated so you can set the hiscore entries from the command prompt?

Something like "HiToText -read [ROM]" to display the hiscore table and "HiToText -write [ROM] [RANK] [SCORE] [NAME]"?
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: TheShanMan on October 16, 2008, 06:59:41 pm
Probably, and Defender as well I'd imagine.

Yes, defender has non-volatile ram for the high scores. I think that's pretty typical on the williams boards.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on October 16, 2008, 07:22:44 pm
Fyrecrypts: Maybe HiToText should be updated so you can set the hiscore entries from the command prompt?

Something like "HiToText -read [ROM]" to display the hiscore table and "HiToText -write [ROM] [RANK] [SCORE] [NAME]"?

Yeah, this should actually be pretty easy given the way saving scores is called with a generic method that accepts a string array just like command arguments, I can probably squeeze this in tomorrow night.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on October 17, 2008, 11:16:33 pm
New HiToText updated with the suggestions from Headkaze.

Syntax is: HiToText [-r|-w|-f] [filename] [score, name, etc... whatever a -f says, delimited by spaces]

-r reads the file, sends it to standard out.
-f tells you the format used for writing to the file.
-w writes to the .hi file.

There's no real error checking done here, but it works if the parameters are correct.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: headkaze on October 18, 2008, 01:27:26 am
Hey Fyrecrypts I've added some error checking so it will fail in most cases with a proper error message.

It's coming along really nicely I must say, great work guys :)

Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on October 18, 2008, 06:01:01 pm
Very nice, I'll include those in my next update. Thank you.

Next update will also include a fix in the hiscore.dat table for xmen (Was missing stage reached byte for the 10th highest score for Cyclops), and I guess I'll do some version control with it as well. I'll probably also throw in the dkongjr fix.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on October 21, 2008, 05:43:49 pm
Quick note, I've made a loading screen, as HiScanner now takes a little while to get some information from MAME.

I am terrible with photoshop, but I would love if someone who is artistic would be willing to create a nice little loading image that could be used.

Two things to know about this, I am not set on any particular image size, I'd rather it be less than 640x480, and there will be a progress bar that will take up at least some portion of the screen, I suppose someone could incorporate this into the image if they want.

Of course, I'll give you credit in HiScanner.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on October 29, 2008, 11:20:59 pm
I updated everything. HiScanner, HiToText, and the hiscore.dat file fixes X-men, I didn't get around to fixing dkongjr in this one.

HiScanner uses a new "no dupes" algorithm that while isn't perfectly efficient is still fast enough. No server for everyone yet, but I am mostly ready when it's ready.

New HiToText adds a couple more games: Simpsons, and Altered Beast.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: NOP on October 30, 2008, 10:49:55 am
I'm gone for the next several days, but starting late next week I'll get back into decoding more files.

Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on November 15, 2008, 12:53:17 pm
Made some more updates, added x-men which required some changes to the way HiScanner saved scores, which took a while for me to come up with a decent solution for that. Since it scores the top 10 scores by character, I couldn't assume the old way of sorting by scores would work. This should pave the way for .hi files or .nv files (when I start on that) that are more complicated score files such as Moon Patrol or Cameltry to be done easier. At least for HiScanner, all of these are easily done in HiToText as well. In addition, you will need the version 0.1 of the hiscore.dat included in hiscore.zip in the main post. It fixes the issue mentioned a few posts up.

There's also the possibility that HiToText could make it's way to Hyperspin in some form, it looks like BadBoyBill would like to see hiscores displayed in his front end! Hooray! Here's the thread: http://www.hyperspin-fe.com/forum/showthread.php?t=1274

Here's to hoping for some more widespread use of this, and more people able to help. There still are 1000's of games to decipher, and more and more my free time is shrinking. =(
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: tspeirs on November 17, 2008, 06:12:57 pm
Hi Fyrecrypts. GameEx has support for your project now, and it includes hitotext.exe.

Sorry for the delay on the hosting. Although the server is being paid for I have not touched it really yet although its all installed and patched and has has a domain. I may just temporairly give you admin accesss via remote desktop so you can set up the site and SQL dbase. Do you want to do that for now?

PS: If you need a key for GameEx just ley me know.

Cheers.
Tom
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on November 18, 2008, 09:43:19 am
Very cool Tom, I appreciate the support, I'll check it out in GameEx when I get a chance!

This is pretty much the very reason I design this project, was to see it used in FEs like this.

I'll shoot you an e-mail later today about the webspace, when I have some time (Gonna be busy today).
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on November 19, 2008, 05:50:16 pm
So I've been thinking about how I'm sure more people would like to help if they thought they could, and while recruiting my non-technical brother, I realized I should make a post about what he does to help me get some of these games decoded just a little bit faster.

Basically, I'm getting pretty good and actually decoding the .hi files. Games like Road Runner (Atari) would be difficult if I hadn't already put the time in on Marble Madness which use the same space saving score and name coding.

Because of this, more of my time getting a game into HiToText and HiScanner is usually ensuring that all the possible characters allowed in the name of the hiscore are taken into consideration. So I'm regularly beating hi scores and putting my name as: ",.-" to see what these characters map out to.

What I've got my brother doing, is beating hi scores, and using every possible character that the game allows, taking a screenshot of all the high scores, and e-mailing those screenshots and the .hi file to me, so I can spend more of my time programming and decoding the .hi file.
One important note about this, I never need all the alpha-numeric scores, usually just "ABZ", "abz", and "019", as every game so far has a pattern for these characters, that make needing "CDE" and so on pretty pointless.

For something like Captain America and the Avengers, the game only stores 5 scores at a time, but has a lot of characters that could not be on the same hiscore table at the same time, so my brother took multiple screenshots, and made copies of the captaven.hi file for those screenshots and sent me an e-mail with this information, deleted the old captaven.hi file and started again with the characters that wouldn't fit in the first hiscore table, I ended up with 4 different captaven.hi files, but was able to capture every possible character allowed with the screenshots.

I'm hoping that some of you that have games you'd like to see decoded (especially those of you using the new version of GameEx, thanks Tom!) would be willing to upload their hiscore screenshots, and .hi OR .nv files to this post. Please zip them up as this board does not actually accept .nv or .hi extensions, and converting these to .txt corrupt them.

I'll go ahead and put this information in the first post as well.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on November 19, 2008, 06:04:44 pm
On another note, I've decided to make all clones and hacks listed in the hiscore.dat for games already deciphered included in the next version of HiToText and HiScanner. I thought about it, and if for whatever reason the scores are determined differently in clones/hacks that I can fix them as they show up. For now, it's just too much work to ensure that every Mr. Lo type game has the same encoding as Mr. Do.

Although it is technically possible that the games could have something like 4-byte scores that were reversed resulting in the same entry in the hiscore.dat file being valid, and then would be incorrectly decoded. I highly doubt this is the case, as most bootlegs or clones just wouldn't have any reason to do this, and if they did they'd more than likely do something to reduce the size of the hiscores, and therefore a new entry would need to be done in the hiscore.dat.

Again, if this causes a problem with untested games like Mr. Lo, I'm hoping someone comes to this board and posts it, and I can fix the problem.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: headkaze on November 19, 2008, 06:16:51 pm
Here's a screenshot of HiToText running from inside GameEx :)

Say a big thanks to your brother Fyrecrypts his help is much appreciated. It's good to see that other people are seeing the usefulness of this project. I always had faith people would realize it eventually.

I was going to say that if your going to give thanks or credit for work on this project to include NOP in the list as his hard work has been invaluable. Fyrecrypts perhaps you should put some credits in the first post and list the people who have been involved in the project in some way? Maybe include a readme.txt in the software packages with info about the project, who's involved, contact addresses etc.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on November 19, 2008, 06:19:24 pm
I totally agree, having some credits is a great idea.

Edit: New version up, does not have the readme.txt as headkaze suggested above, but the next version probably will, I just wanted to get this newer version out real quick that adds Bubble Bobble and Captain America, plus works with all the hacks and clones as I mentioned above.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: tspeirs on November 23, 2008, 12:27:09 am
Good call on including the clones. I was going to suggest that. I could see that it was needed once it was running in GameEx.

What would be nice too, would be the option to output a list of supported roms from the command line. I made a file myself for GameEx to use, as I didnt wouldnt to have the overhead of calling the process for every game. This would make it a lot easier for me and other front end devs.

Thanks to all involved in the project.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: tspeirs on November 23, 2008, 01:20:58 am
Figured Id just add the list support myself. See attached. New -l (list) option.


Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: headkaze on November 23, 2008, 12:22:55 pm
Figured Id just add the list support myself. See attached. New -l (list) option.

I don't see a new option called -l in that attachment Tom?
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on November 23, 2008, 12:26:00 pm
It's in the HiToText/HiToText folder of the zip.

Edit:

I made some changes to use reflection to do this, as I did the same thing for HiScanner and actually modified the namespaces of all the game files for this very purpose. It may be a little slower than hardcoding the names, but it only needs to be run once.

I'll attach to the main post as well.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: headkaze on November 23, 2008, 01:16:31 pm
Lol I just went and automated things as well doh! My version just uses "GamesSupported". But take your pick on the one you use they both do the same thing except I think mine is a little easier to update ;)
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on November 23, 2008, 01:30:13 pm
Lol I just went and automated things as well doh! My version just uses "GamesSupported". But take your pick on the one you use they both do the same thing except I think mine is a little easier to update ;)

Mine might be a little weird to understand, but after you add a new "game".cs file it'll be able to read GamesSupported without changing anything else, as long as it has the same namespace as the other games.

Edit: However, I very much like that you've overhauled the whole thing so we won't have to do a switch/case statement for every clone. =)
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: headkaze on November 23, 2008, 01:34:19 pm
Mine might be a little weird to understand, but after you add a new "game".cs file it'll be able to read GamesSupported without changing anything else, as long as it has the same namespace as the other games.

Yes but in mine you don't have to have a massive switch block to test each name, you simply add the new game to the m_game array and it will use GamesSupported for everything. Easier to maintain IMHO.

EDIT: Okay just read your edit, I think it's easier but interesting use of reflection I would have never have thought of that one ;)

EDIT2: There was a minor error that I fixed and it doesn't seem like you downloaded the last one I upped so you might want to grab that just in case.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on November 23, 2008, 01:37:51 pm
Yeah, I believe your version to be the easier version to maintain, so I'll use that as I move forward.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: headkaze on November 23, 2008, 01:55:44 pm
Okay I think we should remove our attachments now and keep everything in the first post to avoid confusion  :cheers:

EDIT: Found another bug..

In Program.cs

Code: [Select]
game = m_games[j];
Should be

Code: [Select]
game = m_games[i];
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on November 23, 2008, 02:03:17 pm
Done.

Edit: Bug fixed.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: headkaze on November 23, 2008, 03:06:13 pm
Another bug lol this will not effect the execution of the program but anyway..

Code: [Select]
Console.WriteLine(String.Format("Error: No ROM Specified", romName));
Should be

Code: [Select]
Console.WriteLine("Error: No ROM Specified");
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: tspeirs on November 23, 2008, 10:50:18 pm
Im glad you took the time to do it properly.

[Ive removed my upload]
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: redhorse on November 25, 2008, 01:07:05 pm
I'd like to contribute support for my favourite game R-Type.

The attachement contains the code for handling R-Type highscore files (rtype.cs), the rtype.hi file with the default highscores and an ingame screenshot of the default highscores.

Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on November 25, 2008, 07:39:12 pm
Very cool! Thank you redhorse, I will add this in the next version, or if you don't want to wait, you can compile it yourself pretty easily. I should have a new version with a few new games tomorrow night.

In addition, I'm hoping to write up a more detailed tutorial on how to help with pictures as well. In-laws are in town for a while, so not a lot of spare time.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: redhorse on November 26, 2008, 01:09:55 am
I've already compiled it to try it out with GameEx. However when I run "Hitotext.exe -r rtype.hi" from a console window I get the error message that rtype.hi can not be found.

When I run it within Visual Studio (working folder set to the place where my rtype.hi is located) it works fine.
I also tried to specify the absolute path to the .hi file but without success.

Any hints what I might be doing wrong? I have to admit that I don't have much experience with programming in C# and working with Visual Studio, I'm more from the Java/Eclipse corner :-)

Btw, next game on my list would be Slapfight, if you want to add it to your "road map".

Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on November 26, 2008, 10:49:15 am
Only thing I can think of is that you might have forgotten the .hi extension? I see that you have it in your example above, but I forget it constantly.

Additionally, you may need to put quotes around the filename, especially if there are spaces.

I'm getting so tired of forgetting the .hi extension, in the next version I'll probably make that optional.

New version up BTW, adds a few new games: R-type (Thanks redhorse), Super Dodge Ball, Knights of the Round
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: redhorse on November 28, 2008, 02:34:05 pm
Ok, I have it running now and after updating the GameEx HiScore_SupportedGames.txt file I can see my R-Type Higscores now!!

One question: In most of the samples that I've looked at the highest score gets a rank of 0. Why don't you use rank 1 for the highest score. IMO the highscore tables should show a "1" at the top, not a "0".

BTW: I've decoded the .hi file for Slapfight and programmed the decoding methods in a C# class. As soon as I've done the encoding methods for writing a file I will post the C# code  here.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on November 28, 2008, 03:20:29 pm
Ok, I have it running now and after updating the GameEx HiScore_SupportedGames.txt file I can see my R-Type Higscores now!!

One question: In most of the samples that I've looked at the highest score gets a rank of 0. Why don't you use rank 1 for the highest score. IMO the highscore tables should show a "1" at the top, not a "0".

BTW: I've decoded the .hi file for Slapfight and programmed the decoding methods in a C# class. As soon as I've done the encoding methods for writing a file I will post the C# code  here.

I agree with this, and I probably need to go back through the game files already created to change this. For R-type I actually changed this from 0 to 1 (and so on down the line) in the version you posted when I made the last version of HiToText. I'll look through the old ones again and see where this occurs. For HiToText it's only where games actually save or display rank.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: headkaze on November 28, 2008, 06:47:55 pm
Hey Fyrecrypts to enable HitToText to work with or without the .hi extention

Change

Code: [Select]
fileName = args[1];
to

Code: [Select]
fileName = Path.GetExtension(args[1]) == String.Empty ? args[1] + ".hi" : args[1];
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: headkaze on November 28, 2008, 06:57:30 pm
Screenshot of HiToText running inside HyperSpin
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on December 02, 2008, 01:28:54 am
Next update will include headkaze's optional .hi extension line of code above, and include a few new games: Metrocross, Hyperduel, and Bombjack. Might include more if I can get to it.

I've kinda been hoping to decode an nvram file soon, however even the smallest of these is usually 1,000 bytes or more, and require changes in numerous places to work correctly, so it's a little daunting. I'll get you yet Metal Slug 3...
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: NOP on December 02, 2008, 09:44:41 am
sorry, life has taken over for awhile, but i'm still here on this project as much as i can be.
i'll try my hand at a joust nvram file, simply because joust is my favorite game and i'd love to be able to share those scores...
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: bent98 on December 05, 2008, 08:18:23 am
Your program works great in Hyperspin although if I leave Hyperspin in attract mode for say 60 mins your program crashes. I am running Win XP 32.

Anything you want me to test or debug?
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Visitor Q on December 05, 2008, 09:24:46 am
Awesome Work Guys!

Tom has this fired up in Game Ex and didn’t even know until I went and looked for it.

Love it!

I just want to say I really appreciate all the hard work and dedication people put into projects like this and don’t ask for a single cent in return.

Hats off guys!!!  :applaud:

Ps. Pretty Please on Mr. Driller High Score Support. =]
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on December 05, 2008, 12:00:39 pm
Your program works great in Hyperspin although if I leave Hyperspin in attract mode for say 60 mins your program crashes. I am running Win XP 32.

Anything you want me to test or debug?


Is there an exception message at all? It's possible that I might have a game definition wrong somewhere, and it's crashing there.

Awesome Work Guys!

Tom has this fired up in Game Ex and didn’t even know until I went and looked for it.

Love it!

I just want to say I really appreciate all the hard work and dedication people put into projects like this and don’t ask for a single cent in return.

Hats off guys!!!  :applaud:

Ps. Pretty Please on Mr. Driller High Score Support. =]


Glad you like it! And I'd love to get Mr. Driller in to the hiscore.dat as well, I just don't seem to ever have the spare time at home to mess around with it. =)
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: bent98 on December 05, 2008, 01:07:27 pm
Ill take a closer look and get back to you.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on December 10, 2008, 06:04:09 pm
Update coming soon with a few new games deciphered: Bonanza Bros, and Nightmare in the Dark. Here's the thing about Nightmare in the Dark, it's an nv file (although a very easy one)!  ;D

Got some cleanup stuff to do, then I'll release it tomorrow. Cracked Defender.  ;D

Edit: Sorry I couldn't get this out tonight, I will very much try to get something up within the next 24 hours. I just have had very little time to work on anything.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on December 12, 2008, 11:08:00 pm
All right, update is out, with one minor issue, for now I've temporarily removed being able to leave off the file extension, because it's now possibly ambiguous. I didn't want the application to always assume ".hi" anymore. I'll come up with a way to check for both .nv and .hi files, however, I'm not sure how long that would necessarily last either, as certain games (Defender) could possibly use both the .hi file and the .nv file and have different results.

In fact, I have an idea for an addition to HiScanner with this notion in mind. Basically, the defender's .nv file stores the all-time scores, and the .hi file shows "today's" scores. I figure, why not let HiScanner actually do a "today's" scores and the all-time scores as it was meant to be in the arcade.

Again, I'm also hoping to put up some sort of tutorial showing how to decipher the scores.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: headkaze on December 13, 2008, 04:20:36 am
I noticed in the HyperSpin release notes they call this project "Fyrecrypts hiscore software". Is that accurate? I just thought this was a group project?
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on December 13, 2008, 04:27:34 am
I noticed in the HyperSpin release notes they call this project "Fyrecrypts hiscore software". Is that accurate? I just thought this was a group project?

I call it HiToText, or the hi score project, I will send Bill a PM and let him know to use that and not reference anyone in particular.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Dazz on December 13, 2008, 09:38:45 am
I noticed in the HyperSpin release notes they call this project "Fyrecrypts hiscore software". Is that accurate? I just thought this was a group project?
Thanks for pointing that out.  I have fixed the release notes.

Also, what all is required to get this setup and running in HS?  What exactly needs to be downloaded and setup?

Doh!  The instructions are posted on the HS forums.  Here (http://www.hyperspin-fe.com/forum/showthread.php?t=1525).  Thanks!
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Dazz on December 16, 2008, 05:45:30 pm
Thanks for adding Crystal Castles to the list.  Centipede is also another game that is played on a regular basis.  Think we can add that one as a request?
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on December 18, 2008, 10:59:50 am
New version out this morning, added about 6 new games (Defender, J.J. Squawkers, Crystal Castles, Gunsmoke, Elevator Action, and Jungle Hunt/King) give or take some clones. Defender, a big one! I'm currently only using the nvram file for scores, since "all-time" greatest seems more important than "today's" greatest. I have deciphered the .hi file which is today's greatest as well, however I'm not sure how I want to handle 2 different sources for one game yet... which leads me to...

Thanks for adding Crystal Castles to the list.  Centipede is also another game that is played on a regular basis.  Think we can add that one as a request?

Centipede also uses two separate files for scores. Half of the scores can only be overwritten through the nv file, the other half through the .hi file. It's pretty easy deciphering, but again, I'm not sure how I want to handle something like that yet.

I also discovered that despite some games using the same format in the hiscore.dat file, the bytes actually can represent something different. Ali Baba and 40 Thieves is the only example I've found so far, and it will be an easy fix. It is currently lumped in with pacman/mspacman, but will need to be in its own file.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on December 22, 2008, 07:46:09 pm
New version out, added: Tempest, Special Criminal Investigation, Up N' Down, Mr. Do's Wild Ride, and moved Ali Baba and the 40 Thieves to its own game. I decided it wasn't worth making and uploading a compiled version so I just stuck a copy of the HiToText.exe from the bin/debug folder into the main directory. Now there's only the one zip.

A note about Tempest, I had to modify the hiscore.dat file to fix what previously existed for tempest. The person who originally put it in there the way it was didn't realize that although the nvram does contain the first 3 scores, changing the nvram does not actually change the scores, and in fact just screws up tempest. It overwrites the nvram based on the memory in CPU #0 anyway, so I just extended and patched up the tempest portion. So, basically, old tempest.hi files are completely incompatible. Luckily you have a tool to put them right back in! Just screenshot the scores, delete the old .hi file, run Tempest with the new hiscore.dat (in main post, if you open it up in notepad it should be version 0.3), and use HiToText to write in all your scores (e.g. HiToText -w tempest.hi NLA 234500).

Still not completely sure how I want to handle games like Centipede, I might ask the FE guys what they think would be best for the input they want to put into HiToText, and the output they want back.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: headkaze on December 28, 2008, 01:42:48 am
Great work Fyrecrypts. I wonder if the FE dev's are going to keep up with releases or if people are going to need to download this separately?
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on December 28, 2008, 01:07:33 pm
Great work Fyrecrypts. I wonder if the FE dev's are going to keep up with releases or if people are going to need to download this separately?

Well, I think I'm going to make just one more change that the FE guys will have to keep up with, make it so it just uses the game name and the mame folder to get the scores back. HiToText would then take care of looking at the .hi file, the .nv file, or both. This would solve every issue, and shouldn't require the FE guys to ever have to update their FE to accommodate HiToText again, after this final change. Any strange issues regarding displaying the scores would be taken care of within the HiToString method. If this sounds like a valid idea, I'll bring it to Tom and Bill, and see if they like it. Again, I don't want them having to update their FEs all the time, so we should come up with something that should work for every game and stick with it.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: headkaze on December 29, 2008, 12:50:45 am
Definately a great idea and you know you could probably implement it without them needing an update. Since they currently pass the full path to the .hi file you could just get the Mame folder from that.

Eg. Something like this
Code: [Select]
mameFolder = Path.GetDirectoryName(args[1]);
romName = Path.GetFileNameWithoutExtension(fileName);
hiFolder = Path.Combine(mameFolder, "hi");
nvFolder = Path.Combine(mameFolder, "nvram");
hiFilename = Path.Combine(hiFolder, romName + ".hi");
nvFilename = Path.Combine(nvFolder, romName + ".nv");

if(File.Exists(hiFilename))
   // Process the hi file
else if(File.Exists(nvFilename))
   // Process the nv file
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: headkaze on January 01, 2009, 05:30:04 am
HiToText support now added to CPWizard (http://members.iinet.net.au/~freeaxs/cpwizard/)  :cheers:

Also Fyrecrypts any chance you could change HiToText from a "Debug" to a "Release" binary for next version?
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: wwwombat on January 05, 2009, 03:43:42 am
Ok, I have it running now and after updating the GameEx HiScore_SupportedGames.txt file I can see my R-Type Higscores now!!

One question: In most of the samples that I've looked at the highest score gets a rank of 0. Why don't you use rank 1 for the highest score. IMO the highscore tables should show a "1" at the top, not a "0".

BTW: I've decoded the .hi file for Slapfight and programmed the decoding methods in a C# class. As soon as I've done the encoding methods for writing a file I will post the C# code  here.

I agree with this, and I probably need to go back through the game files already created to change this. For R-type I actually changed this from 0 to 1 (and so on down the line) in the version you posted when I made the last version of HiToText. I'll look through the old ones again and see where this occurs. For HiToText it's only where games actually save or display rank.

Just want to do a quick check on this... I believe I have the latest HiToText installed in both the GameEx and CPWizard directories (trying to figure out how to do without one of them but that's a separate question for Headkaze) as well as the supplied hiscore.dat in my mame/hi directory.

Currently, my high scores do show however both Galaga and Donkey Kong still show the best score as being Rank "0" (instead of "1") and so on down the chain... do I need to do anything else or just wait for a future amended HiToText.exe?
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on January 05, 2009, 09:41:17 am
Just want to do a quick check on this... I believe I have the latest HiToText installed in both the GameEx and CPWizard directories (trying to figure out how to do without one of them but that's a separate question for Headkaze) as well as the supplied hiscore.dat in my mame/hi directory.

Currently, my high scores do show however both Galaga and Donkey Kong still show the best score as being Rank "0" (instead of "1") and so on down the chain... do I need to do anything else or just wait for a future amended HiToText.exe?

Yes, I need to get the next version out that includes some more games, and normalizes the output of every game. With the holidays and some setbacks due to... well... I'm not sure yet, still trying to figure that one out, I haven't released the newest version yet.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on January 05, 2009, 09:43:54 am
Definately a great idea and you know you could probably implement it without them needing an update. Since they currently pass the full path to the .hi file you could just get the Mame folder from that.

Eg. Something like this
Code: [Select]
mameFolder = Path.GetDirectoryName(args[1]);
romName = Path.GetFileNameWithoutExtension(fileName);
hiFolder = Path.Combine(mameFolder, "hi");
nvFolder = Path.Combine(mameFolder, "nvram");
hiFilename = Path.Combine(hiFolder, romName + ".hi");
nvFilename = Path.Combine(nvFolder, romName + ".nv");

if(File.Exists(hiFilename))
   // Process the hi file
else if(File.Exists(nvFilename))
   // Process the nv file

Had to do this a little differently, but as you'll see whenever I can get the next update in, I took your advice and used the mame directory from the full path.

HiToText support now added to CPWizard (http://members.iinet.net.au/~freeaxs/cpwizard/)  :cheers:

Also Fyrecrypts any chance you could change HiToText from a "Debug" to a "Release" binary for next version?

Hooray! Thanks headkaze! As for the release binary, I'll go ahead and do that from now on, just makes more sense.
Title: Re: .hi file conversion to text project. (HiScanner, HiToText)
Post by: Fyrecrypts on January 07, 2009, 09:43:16 am
New version out with lots of changes. First, a thank you to redhorse who contributed to one of the new games supported now: Slap Fight! He gave it to me before Christmas, but as I said in my previous post I've had some issues to work out.  :) Other new games added are Space Invaders and some clones, 1943, Phoenix, Cadillacs and Dinosaurs, and Columns. Columns required a rewrite of what was in the hiscore.dat, so yet again for this version to work correctly you will need an updated hiscore.dat provided above in the hiscore.zip file attached to the main post. Again, this will mean deleting your current columns .hi file, so if you want to keep your Columns scores follow my instructions a few posts up when you had to do this for Tempest.

In addition to that, HiToText temporarily is only supporting looking for .hi or .nv files in your actual MAME directory, this shouldn't really affect anyone as most people only use HiToText for FEs, but I'm saying it should you encounter an expected error experimenting with HiToText. The next version of HiToText I'll ensure this issue is fixed. The reason this happened though is so that current FE's could see hi scores from .nv files without having to change a thing, so you can now see Nightmare in the Dark, and Defender scores.

I've also put in a change that will allow me to easily show scores from games where the hi scores are split between .nv and .hi files. Games like Centipede, which I'm hoping will be in the next release.

And finally, I've reorganized all the games to use a similar format, instead of basing the order on the order of the hi score table, I'm giving almost all games the RANK field (which now starts at 1 for every game), and that will always be followed by the SCORE and NAME fields, then whatever other fields are stored in the order they are displayed on the hi scores screen for each game. The only games that did not get a RANK field were games where only one score is kept like Pacman, Space Invaders, Elevator Action, Super Dodgeball, etc... They will continue to only show the SCORE field.

With headkaze's suggestion, I've also compiled the binary (what most of you care about) as a release in visual studio. This means less debug code in the executable and more optimizations so it'll work faster. As the list of games climb, I'll probably have to do more optimizations to ensure a quick speed.

Anyway, I think I covered everything, enjoy!
Title: Re: HiScanner/HiToText (Version 2009.01.06)
Post by: tspeirs on January 07, 2009, 07:48:37 pm
Thanks Fyrecrypts. I will do my best to include the latest version in new releases of GameEx at all times.
Title: Re: HiScanner/HiToText (Version 2009.01.06)
Post by: Space Fractal on January 08, 2009, 08:36:26 am
Look like this is now a cool project and I need to add this to MultiFE. Is it any way I can port HiToText.exe to BlitzMax or Pure Basic, since MultiFE is used a diffecent language than most FE's? That is due I still looking forward to get this run in Linux, even it still a bit in the future, so I hope this is not a Windows only project.

BTW downloads did not work today, so I cant look how it really works now, but would do that soon. To start with I just think to add support for the exe directly which would got invoked if found after you have quit the game.
Title: Re: HiScanner/HiToText (Version 2009.01.06)
Post by: Fyrecrypts on January 08, 2009, 10:32:39 pm
Thanks Fyrecrypts. I will do my best to include the latest version in new releases of GameEx at all times.

Thanks Tom, but don't feel obligated, it should be the user's responsibility to update HiToText, you've done your part. =)

Look like this is now a cool project and I need to add this to MultiFE. Is it any way I can port HiToText.exe to BlitzMax or Pure Basic, since MultiFE is used a diffecent language than most FE's? That is due I still looking forward to get this run in Linux, even it still a bit in the future, so I hope this is not a Windows only project.

BTW downloads did not work today, so I cant look how it really works now, but would do that soon. To start with I just think to add support for the exe directly which would got invoked if found after you have quit the game.

I'm not sure what exactly you're trying to say, but this application is programmed in C#, primarily because if it were in anything different I would not be able to spend as much time as I do on it. Some time in the future, making the Games files dlls is something I would like to do. The program is completely open source, so you can feel free to use the code in any way that would suit your application.
Title: Re: HiScanner/HiToText (Version 2009.01.06)
Post by: Space Fractal on January 09, 2009, 12:54:53 am
I could download today and check. # should could run in Linux too, without modification which I would check in one of these days. DLL's cannot been used in Linux, so I simply think this project should just continue to use C# as lanugage. Its a good chooice.

So keep working  :D!
Title: Re: HiScanner/HiToText (Version 2009.01.06)
Post by: headkaze on January 09, 2009, 05:38:33 am
It would be pretty easy to port this to C++ infact using pointers and structs would probably make it easier to code. But still there is alot of work there to translate! It would be nice to not have to rely on the .NET runtimes but for projects like GameEx and CPWizard we use it anyway but some other FE's would probably prefer to have a native binary version.

For Linux it should be okay to port across to Mono, although we have not tried. If you can get it compiling let us know. I don't think were using any sort of p/invoking or Windows specific code so it shouldn't be a problem.
Title: Re: HiScanner/HiToText (Version 2009.01.06)
Post by: Space Fractal on January 09, 2009, 06:53:12 am
It would be pretty easy to port this to C++ infact using pointers and structs would probably make it easier to code. But still there is alot of work there to translate! It would be nice to not have to rely on the .NET runtimes but for projects like GameEx and CPWizard we use it anyway but some other FE's would probably prefer to have a native binary version.

For Linux it should be okay to port across to Mono, although we have not tried. If you can get it compiling let us know. I don't think were using any sort of p/invoking or Windows specific code so it shouldn't be a problem.

That is what I can do. Is is a way in the future to make a such a parser version, so new games can been added without adding updating the main app every time? That is was fyrecrypts was thinking with dll files. C# Is a portable langauge like Java is, so it should been not a problem. So of course I would use the binary version, and hope it works. I report when I have tested in few days soon.
Title: Re: HiScanner/HiToText (Version 2009.01.06)
Post by: headkaze on January 09, 2009, 07:10:41 am
That is what I can do. Is is a way in the future to make a such a parser version, so new games can been added without adding updating the main app every time? That is was fyrecrypts was thinking with dll files. C# Is a portable langauge like Java is, so it should been not a problem. So of course I would use the binary version, and hope it works. I report when I have tested in few days soon.

We talked about doing this earlier in the thread actually ;)
Title: Re: HiScanner/HiToText (Version 2009.01.06)
Post by: Space Fractal on January 09, 2009, 09:39:27 am
It a bit confuction how to get it to work because there is no real documentation and hitotext.exe is actuelly missing to the compiled file.

I need to ask some thing:

1. Is hitotext.exe need hitotext and app.config in the same dir, but for some reason it not in the compiled file (which it should), but is comply versions of it on the other download in first post? I see only the newest is really needed for best support.

2. do the app.config file which is a wrong name for the config (should been hi2txt.config), but that is needed by hitotext.exe as well?

3. How to checkout the supported games without using a manual list? I would like it have some short of -listgames command to get the list so no manual edit is needed. Only romnames is needed. (there is a command for that)

4. How to use the updater.exe, should that been invoked on some points?


Title: Re: HiScanner/HiToText (Version 2009.01.06)
Post by: Fyrecrypts on January 09, 2009, 08:28:42 pm
It a bit confuction how to get it to work because there is no real documentation and hitotext.exe is actuelly missing to the compiled file.

I need to ask some thing:

1. Is hitotext.exe need hitotext and app.config in the same dir, but for some reason it not in the compiled file (which it should), but is comply versions of it on the other download in first post? I see only the newest is really needed for best support.

2. do the app.config file which is a wrong name for the config (should been hi2txt.config), but that is needed by hitotext.exe as well?

3. How to checkout the supported games without using a manual list? I would like it have some short of -listgames command to get the list so no manual edit is needed. Only romnames is needed. (there is a command for that)

4. How to use the updater.exe, should that been invoked on some points?

HiToText is a stand-alone application.

I think you've downloaded HiScanner, which has no real practical purpose yet if you do not have your own webspace to host this. It's included because it was my primary project for a while. I have left it up there, but it has not been updated online for months. If you would like to use this application you need a webserver with a MySQL database. There is some php code I've included (I think... been a while) that will access the database. I am not really supporting this application as it's not very user friendly right now. The code is free and you're welcome to mess with it as you see fit to help, when I get closer to creating my own cab I will resume work on this application. The app.config file is required for HiScanner to work correctly, and does need to be in the same database.

Updater.exe is only used for HiScanner, and also requires the app.config file in the same directory. Source for this is not open, only because it's a very simple application.

The HiToText.exe is included in the base directory of the HiToText_20090106.zip file at the top of this post, it is also included in the bin/Release directory. No additional files are needed (not even app.config), HiToText is self-contained.

Hope that helps, headkaze and I have gotten HiToText to be pretty user (and FE) friendly, however the same is definitely not true for HiScanner. =D
Title: Re: HiScanner/HiToText (Version 2009.01.06)
Post by: Fyrecrypts on January 10, 2009, 12:35:46 pm
I have some great news! Thanks to Cananas over on the mameworld.net forums, Mr. Driller will be in the next version of the hiscore.dat file and also deciphered for HiToText.
Title: Re: HiScanner/HiToText (Version 2009.01.06)
Post by: Cananas on January 10, 2009, 01:35:20 pm
More explanation:

Mr Driller stores the high score table in 3 diferent (but contiguous) addresses. All start with the same bytes: 76 65 57 76.

-0x200DB4: Here is the default high score table. Never change.
-0x201038: The high score table that is shown in the game. If you change somehing here, you will see in the game.
-0x2013FC: Apparently, is the high score table that is saved into the mrdrill.nvram file.

If you get a high score and you ener your initials, those are stored into de last two table (0x201038 and 0x2013FC).
After you exit the game, the high score data in 0x2013FC is stored in the nvram file.

The problem with this game is this: After you saved the nvram file, when you run the game again, the high score table in the nvram files is stored in the 0x2013FC address. But it don't update the high scores in the 0x201038 table, so, in fact, you don't see the saved records in the game.

If you play again and get another high score, you will see this score in the game, because is stored in the 0x201038 table. Also, is stored in the 0x2013FC (remember the tablethat is saved intro de nvram file).

So Mr Driller saved the high score table in the nvram file, BUT, it doesn't update the high score table that is shown in the game (address 0x201038).

Threre is 40 entries for high score with this structure (here is the 1º score in the 500m level). I'm assuming that bytes 0-3 are 76 65 57 76:

bytes 4-6: (30 75 00): The Score, inverted, so 0x007530 points (30000 points). The maximun score will be: 0x0F423F points (999999 points), so bytes 3F 42 0F, replacing 30 75 00.

byte 7: It seems always 00, no matter wich number put it here... Not used?

bytes 8-9: the depth. In this case (C8 00), so 0x00C8 m (200 meters). The maximun depth wil be 9999m (0x270F), bytes 0F 27.

bytes 10-11: It seem always 00. Not used?

bytes 12-14: The Initials. Only 3 letters are admitted:
  00: A
  01: B
  02: C
 ...........
  18: Y
  19: Z

byte 15: It seems always 00. No matter which is the number. Not used?

byte 16: If different from 00, show in the high score the "Mr Driller pin". I suppose that you get this medal when you finish a level (got 500m in level 500 or 1000m in level 1000).

bytes 17-19: It seem not used.

Title: Re: HiScanner/HiToText (Version 2009.01.06)
Post by: Cananas on January 10, 2009, 01:49:29 pm
Commando (and clones)

First of all the hiscore.dat must be updated. There is one more clone and other one has changed the rom name. The correct names are:

commando :
commandu :
commandj :
sinvasn :
sinvasnb :
commandb :

There are 7 entries for records, plus the Top Score at the end of the .hi file.

The structure of each entry is:

bytes 0-3 (00 50 00): The score. In this case 50.000 points. Note that the last 0 is always omitted. Another example is the trird record (00 19 42): 0019420 points.

bytes 4-13: The name in the Asccii format (41->A, 42->B...5A->Z). There are some special characters:
    5B->. (full stop) This character can be also obtained with the byte 2E as usual. But if you set this directly from the game, it always register like 5B.
    5C->heart symbol
    5D->rb symbol
    5E-> (an space)
    61 to 7A->the alphabet with another cursive yellow font.


After this 7 entries, we found the Top Score with the same format that the Score (005000->50000 points), so the max. score will be 9999990 (99 99 99).

                         
Title: Re: HiScanner/HiToText (Version 2009.01.06)
Post by: Fyrecrypts on January 17, 2009, 03:50:40 pm
New version out, with new games including one that many of us have been wanting for a while: Mr. Driller! Thanks go to Cananas for discovering where the hiscore table was, and with that I added support for it in the hiscore.dat file, and in HiToText. Other games added: DJ Boy, Teenage Mutant Ninja Turtles - Turtles In Time, Dragon Blaze, Asteroids, Teenage Mutant Ninja Turtles, Pacmania, Do! Run Run, Commando (also thanks to Cananas for decoding that).

Between this release and the last release Leezer released a new hiscore.dat. He did not incorporate the running changes I've been making, but he probably didn't know I was. I've merged his changes with mine, and uploaded it in the main post. I had to modify Do! Run Run and Meteorites (a clone for Asteroids) to work correctly. In addition, I forgot to mention that 1943 in a previous release also required modification.

Enjoy!
Title: Re: HiScanner/HiToText (Version 2009.01.17)
Post by: Visitor Q on January 20, 2009, 03:40:47 pm
Anyone know if there is a way to get Zinc to display the hi score in my front end for Mr. Driller?
Title: Re: HiScanner/HiToText (Version 2009.01.17)
Post by: Cananas on February 01, 2009, 08:12:19 am
Crazy Climber (and clones)

Firstly, I would suggest this change in the hiscore.dat:

Code: [Select]
cclimber:
cclimbrj:
ccboot:
0:8083:03:02:00
0:8095:0a:30:52
0:8086:03:02:00
0:80a3:0a:30:52
0:8089:03:02:00
0:80b1:0a:30:52
0:808c:03:02:00
0:80bf:0a:30:52
0:808f:03:02:00
0:80cd:0a:30:52
ccboot2:
0:8083:03:02:00
0:8095:0a:15:52
0:8086:03:02:00
0:80a3:0a:15:52
0:8089:03:02:00
0:80b1:0a:15:52
0:808c:03:02:00
0:80bf:0a:15:52
0:808f:03:02:00
0:80cd:0a:15:52

Now the hitotext implementation is simple:
We have 5 hiscore in the game with this structure (with the hiscore.dat change suggested):

- Bytes 00-02 (02 00 00): Is the first score. Is this case, 20,000 points
- Bytes 03-0c (30 .... 52): Is the registered name of the first score (max: 10 characters)

- Bytes 0d-0f (02 00 00): Is the second score. 20,000 points
- Bytes 10-19 (30 ... 52): Max 10 characters

Next is the third, fourth and fifth score.

The characters
00 .... 09: The number 0 to 9
0a: A
0b: B
...
10: G
11: H
12: I
...
1a: Q
1b: R
1c: S
...
20: W
21: X
22: Y
23: Z

28: ! (not accessible)
29:' (not accessible)
2b: - (not accessible)
2c: . (not accessible)
2e: = (not accessible)

30, 31, 32, 33, 34, 35, 36, 37: Nitchibutsu word in cclimber, ccboot2 and cclimbrj. Nothing in ccboot
52: Space
Title: Re: HiScanner/HiToText (Version 2009.01.17)
Post by: Cananas on February 01, 2009, 08:26:53 am
Moon Cresta (and clones)

Firstly I would suggest this change in the hiscore.dat to make easy the hiToText implementation:
Quote
mooncrst:
eagle:
eagle2:
eagle3:
fantazia:
mooncmw:
smooncrs:
mooncrsb:
mooncrs2:
mooncrs3:
mooncrsa:
mooncrsu: 
spcdrag:   
spcdraga:
spctbird: 
0:8042:03:00:00
0:8054:0a:3e:24
0:8045:03:00:00
0:8062:0a:3e:24
0:8048:03:00:00
0:8070:0a:3e:24
0:804b:03:00:00
0:807e:0a:3e:24
0:804e:03:00:00
0:808c:0a:3e:24
mooncrgx:
0:4042:03:00:00
0:4054:0a:3e:24
0:4045:03:00:00
0:4062:0a:3e:24
0:4048:03:00:00
0:4070:0a:3e:24
0:404b:03:00:00
0:407e:0a:3e:24
0:404e:03:00:00
0:408c:0a:3e:24
mooncrsg:
0:8045:03:00:00
0:8057:0a:24:24
0:8048:03:00:00
0:8065:0a:24:24
0:804b:03:00:00
0:8073:0a:24:24
0:804e:03:00:00
0:8081:0a:24:24
0:8051:03:00:00
0:808f:0a:24:24

With those changes we will have put the data in this order: score1, name1, score2, name2, score3, name3, score4, name4, score5, name5. Also, we will not saved data that is changed during the game, BTW.

So Bytes 00-02 is the score1: (00 50 00): 5,000 points
Bytes 03-0c is the name 1:(3e 3c 3a 38 36 34 32 30 24 24): Nichibutsu

And so on.

Characters
The same characters of Crazy Climber with this changes:
3e,3c,3a,38,36,34,32,30: Nichibutsu word
24: Space

One curiosity: mooncrst, mooncrsb, mooncrs2, mooncrs3, mooncrgx, mooncrsa, mooncrsu, mooncmw, spcdrag, spcdraga admit 10 characters to be insert in the highscore table, while eagle, eagle2, eagle3, fantazia, mooncrsg, spctbird and smooncrs only admit 3 characters.
Title: Re: HiScanner/HiToText (Version 2009.01.17)
Post by: Cananas on February 01, 2009, 08:37:54 am
Phoenix and clones
I know that is included in HitoText, but I don't like have to remember that I must start a new game before exit the game to save the hiscore, so I would suggest this change to the hiscore.dat:
Code: [Select]
; fenix is not working yet
phoenix:
condor:
falcon:
nextfase:
phoenix3:
phoenixa:
phoenixb:
phoenixc:
phoenixt:
vautour:
0:4389:03:00:00
0:41e1:01:20:20
0:41c1:01:20:20
0:41a1:01:20:20
0:4181:01:20:20
0:4161:01:20:20
0:4141:01:20:20
0:4381:03:00:00
0:4301:01:20:20
0:42e1:01:20:20
0:42c1:01:20:20
0:42a1:01:20:20
0:4281:01:20:20
0:4261:01:20:20
0:4385:03:00:00
0:40c1:01:20:20
0:40a1:01:20:20
0:4081:01:20:20
0:4061:01:20:20
0:4041:01:20:20
0:4021:01:20:20
batman2:
0:4289:03:00:00
0:51e1:01:20:20
0:51c1:01:20:20
0:51a1:01:20:20
0:5181:01:20:20
0:5161:01:20:20
0:5141:01:20:20
0:4281:03:00:00
0:5301:01:20:20
0:52e1:01:20:20
0:52c1:01:20:20
0:52a1:01:20:20
0:5281:01:20:20
0:5261:01:20:20
0:4285:03:00:00
0:50c1:01:20:20
0:50a1:01:20:20
0:5081:01:20:20
0:5061:01:20:20
0:5041:01:20:20
0:5021:01:20:20
falconz:
griffon:
vautourz:
0:4389:03:00:00
0:41e0:01:20:20
0:41c0:01:20:20
0:41a0:01:20:20
0:4180:01:20:20
0:4160:01:20:20
0:4140:01:20:20
0:4381:03:00:00
0:4300:01:20:20
0:42e0:01:20:20
0:42c0:01:20:20
0:42a0:01:20:20
0:4280:01:20:20
0:4260:01:20:20
0:4385:03:00:00
0:40c0:01:20:20
0:40a0:01:20:20
0:4080:01:20:20
0:4060:01:20:20
0:4040:01:20:20
0:4020:01:20:20

What this thing do is to save the score of player 1 and 2, too, so you can exit what ever you want. We will save this things (in order): the highscore, the videoram hiscore, the score1, the videoram score1, the score2 and the videoram score2.

Example:
bytes 00-02: the hiscore: 00 15 10 is 001510, so 1,510 points.
bytes 03-08: the hiscore in the videoram: 20 20 21 25 21 20 is 001510, so 1,510 points
Title: Re: HiScanner/HiToText (Version 2009.01.17)
Post by: Fyrecrypts on February 01, 2009, 12:50:12 pm
Wow! Thanks Cananas! I really appreciate the extra help! All of these games should get into the next release.

By the way, I found your Phoenix fixes very clever.
Title: Re: HiScanner/HiToText (Version 2009.01.17)
Post by: Space Fractal on February 01, 2009, 02:54:39 pm
idea:
Add a -update command, so this can been updated to various FE very automatic or notice it to the user, so a new one can been downloaded from a contain link (example can been checked when on a FE startup)?

Title: Re: HiScanner/HiToText (Version 2009.01.17)
Post by: Fyrecrypts on February 01, 2009, 03:07:41 pm
idea:
Add a -update command, so this can been updated to various FE very automatic or notice it to the user, so a new one can been downloaded from a contain link (example can been checked when on a FE startup)?

I like that idea, I'll try and put it in the next version, but I think it'll probably end up in the version after next. Thanks!
Title: Re: HiScanner/HiToText (Version 2009.01.17)
Post by: Cananas on February 01, 2009, 03:47:09 pm
[Pleiads and clones/b]
It is exactly like phoenix, so suggested changes:
Code: [Select]
pleiads:
capitol:
pleiadbl:
pleiadce:
0:4389:03:00:00
0:41e1:01:20:20
0:41c1:01:20:20
0:41a1:01:20:20
0:4181:01:20:20
0:4161:01:20:20
0:4141:01:20:20
0:4381:03:00:00
0:4301:01:20:20
0:42e1:01:20:20
0:42c1:01:20:20
0:42a1:01:20:20
0:4281:01:20:20
0:4261:01:20:20
0:4385:03:00:00
0:40c1:01:20:20
0:40a1:01:20:20
0:4081:01:20:20
0:4061:01:20:20
0:4041:01:20:20
0:4021:01:20:20
Title: Re: HiScanner/HiToText (Version 2009.01.17)
Post by: Fyrecrypts on February 01, 2009, 03:48:41 pm
[Pleiads and clones/b]
It is exactly like phoenix, so suggested changes:
Code: [Select]
pleiads:
capitol:
pleiadbl:
pleiadce:
0:4389:03:00:00
0:41e1:01:20:20
0:41c1:01:20:20
0:41a1:01:20:20
0:4181:01:20:20
0:4161:01:20:20
0:4141:01:20:20
0:4381:03:00:00
0:4301:01:20:20
0:42e1:01:20:20
0:42c1:01:20:20
0:42a1:01:20:20
0:4281:01:20:20
0:4261:01:20:20
0:4385:03:00:00
0:40c1:01:20:20
0:40a1:01:20:20
0:4081:01:20:20
0:4061:01:20:20
0:4041:01:20:20
0:4021:01:20:20

Thanks Cananas, I found the same thing but didn't notice that "capitol" was also part of that.
Title: Re: HiScanner/HiToText (Version 2009.01.17)
Post by: Cananas on February 01, 2009, 04:01:46 pm
I have an update hiscore.dat to 129u3, including all changes you made (also my suggested changes) which have the games grouped by parent (with its clones attached without spaces) ordered alphabetically. Also, I deleted duplicate entries and obsolete parents and clones and I insert many new clones.

It's more easy to update for new games, clones or renamed games if they have an order.
The only problem I see is that is more difficult to know what changes have been made (but a practical whatsnew.txt may solve the problem).

Maybe you could find useful...

PD. You will see spanish comments like "VERIFICAR ....". Things I want to verify.

*** EDIT *** Deleted attached file to avoid confussion. Go to the First post to download an update one.
Title: Re: HiScanner/HiToText (Version 2009.01.17)
Post by: Fyrecrypts on February 01, 2009, 04:51:42 pm
I have an update hiscore.dat to 129u3, including all changes you made (also my suggested changes) which have the games grouped by parent (with its clones attached without spaces) ordered alphabetically. Also, I deleted duplicate entries and obsolete parents and clones and I insert many new clones.

It's more easy to update for new games, clones or renamed games if they have an order.
The only problem I see is that is more difficult to know what changes have been made (but a practical whatsnew.txt may solve the problem).

Maybe you could find useful...

PD. You will see spanish comments like "VERIFICAR ....". Things I want to verify.


Yes, thanks, I personally very much like this type of organization. I think your idea of a whatsnew.txt would be the optimal solution. As for the Spanish comments, I can understand a lot of Spanish, and what I can't, google can. =D
Title: Re: HiScanner/HiToText (Version 2009.01.17)
Post by: Fyrecrypts on February 04, 2009, 12:46:24 am
So I could really use some help from someone that is good at Moon Patrol. I've deciphered the locations in the .hi file where almost all of the record times are stored. I have Beginner E, J, O, T, Z, Challenge E, J, O, T, Z, and Challenge 2 E, however I think there's quite a few more and I'm just not good enough nor do I have the time to get to those last "few" stages. What I really need are screenshots showing the stage and record time for anything after Challenge 2 E, and their .hi file if possible. Here's the catch, if any of the record times are the same as any other record time, I won't be able to use those because the .hi file for those record times will be ambiguous.

Any help would be greatly appreciated. =)
Title: Re: HiScanner/HiToText (Version 2009.01.17)
Post by: Fyrecrypts on February 05, 2009, 11:17:45 am
New version out today with loads of new stuff, mostly concerning what I call alternate scores. This is used mostly with secondary scores like Track and Field's individual event records, or Moon Patrol's checkpoint record times. I don't believe any FE has made use of these yet, but at least there's now a process that can be used to incorporate these scores into HiToText.

There are new commands that use the alternate scores: -ra which reads the entire hi score table, including alternate scores and displays that. NOTE: -r will work the same and only show the main hiscore table so FE devs don't need to worry about this version breaking their hi score features. -wa will write an alternate score using the same basic format as -w however it takes an additional parameter that is the name of the alternate score table you wish to modify. -fa will display the format for these alternate scores so you can have the parameters necessary to write an alternate score. I suggest using a -ra first so you can see the displayed format as well.

I've added new games as well: Darius Gaiden - Silver Hawk (missing nice looking zone data though), Outzone, Track and Field, Centipede, X-men Vs. Street Fighter, Crazy Climber, Millipede, Moon Cresta, Moon Patrol (Finally! Although sill a little incomplete, more on that below), and Arkanoid. In addition I modified Phoenix to use Cananas' new hiscore.dat entry.

Crazy Climber, Moon Cresta, Phoenix, and all their supported hacks/clones all use Cananas' new hiscore.dat entries as well, so if you have scores for those games and want to save them, be sure to have a screenshot or jot down the scores first, then delete the old .hi file for that particular game. Rerun that game with the new hiscore.dat in place, to generate a new .hi file. Then use HiToText to reinsert those scores.

Moon Patrol is missing some alternate scores because I just am not good enough at the game, and don't have enough time to decipher all the checkpoints. This won't matter much to you right now if you only use HiToText in FEs until they start to use alternate scores.

Darius Gaiden - Silver Hawk has an interesting display for showing the stages you've visited, and I'd like that to show up as shown in game, however I have not cracked the algorithm used yet, and certainly haven't found the time to find every single combination of zone routes yet. So it'll just show zones as the actual byte value found in the .hi file.

I've also fixed a minor bug with Ghosts N'Goblins where the rank was displaying incorrectly.

The new HiToText, and new hiscore.dat will be uploaded shortly in the main post. Enjoy!
Title: Re: HiScanner/HiToText (Version 2009.02.05)
Post by: Cananas on February 06, 2009, 05:27:24 am
Here is all about mpatrol.hi, mpatrolw.hi:

Bytes 0-2: Top Score (In the image, 90 15 19 -> 191590 points)
Byte 3: Last Point reached (34 -> point Z. purple colour is for challenge courses, black for beginner one)
Bytes 4-5: Challenge Course 1, time to reach Z point

Bytes 6-7: Challenge Course 2, time to reach T point
Bytes 8-9: Challenge Course 2, time to reach O point
Bytes 10-11: Challenge Course 2, time to reach J point
Bytes 12-13: Challenge Course 2, time to reach E point
Bytes 14-15: Challenge Course 2, time to reach Z point

Bytes 16-17: Challenge Course 3, time to reach T point
Bytes 18-19: Challenge Course 3, time to reach O point
Bytes 20-21: Challenge Course 3, time to reach J point
Bytes 22-23: Challenge Course 3, time to reach E point
Bytes 24-25: Challenge Course 3, time to reach Z point

Bytes 26-27: Challenge Course 1, time to reach T point
Bytes 28-29: Challenge Course 1, time to reach O point
Bytes 30-31: Challenge Course 1, time to reach J point
Bytes 32-33: Challenge Course 1, time to reach E point

Bytes 34-35: Beginner Course 0, time to reach Z point
Bytes 36-37: Beginner Course 0, time to reach T point
Bytes 38-39: Beginner Course 0, time to reach O point
Bytes 40-41: Begginer Course 0, time to reach J point
Bytes 42-43: Begginer Course 0, time to reach E point

examples of time records: 77 00 -> 77 seconds
                20 01 -> 120 seconds

Points
For the Beginner Course 0, those are the values: 01 (point A) to 1A (point Z)
For the Challenger Courses (1, 2 or 3), the values are: 1B (point A) to 34 (point Z)

After to reach the Z point of the Course 3, the game start again with this third Challenge. There is an internal byte (temporal) that increments with each Challenge finished. Look at the image attached to the adress E510. The value is 03, Challenge Course 3. After you finish it, this value increments to 04,05,06,07,... , but the text on the screen and the records saved is always for the third challenge.

I hope this help you to complete those games.
Title: Re: HiScanner/HiToText (Version 2009.02.05)
Post by: headkaze on February 06, 2009, 06:56:48 am
Thanks for all your hard work on this Fyrecrypts and thanks Cananas for your help with the decoding.

Fyrecrypts thanks also for helping out in my CPWizard thread. Would it be possible to add a try and catch to Program.cs file so that it will exit gracefully and output the error in a format such as String.Format("Error: Program Exception {0}\r\n{1}", ex.Message, ex.StackStrace) because I check the output of HiToText.exe to see if it has sent "Error:" and then I quietly fail in the background if it does. Right now if the program has an exception it will pop up an annoying message. A simple try and catch inside Main will fix that.

I haven't had a chance to look at the "additional" scores for things like Track and Field yet but I will as soon as I get some spare time. When will you be making an offical release of this version? CPWizard already supports any number of columns so I'm not sure if that is how you've implemented the extra info? Can you give a quick demo of the output the new scores will look like and maybe post a Track and Field hi file for me to test it with?
Title: Re: HiScanner/HiToText (Version 2009.02.05)
Post by: Fyrecrypts on February 06, 2009, 09:12:41 am
Here is all about mpatrol.hi, mpatrolw.hi:

Bytes 0-2: Top Score (In the image, 90 15 19 -> 191590 points)
Byte 3: Last Point reached (34 -> point Z. purple colour is for challenge courses, black for beginner one)
Bytes 4-5: Challenge Course 1, time to reach Z point

Bytes 6-7: Challenge Course 2, time to reach T point
Bytes 8-9: Challenge Course 2, time to reach O point
Bytes 10-11: Challenge Course 2, time to reach J point
Bytes 12-13: Challenge Course 2, time to reach E point
Bytes 14-15: Challenge Course 2, time to reach Z point

Bytes 16-17: Challenge Course 3, time to reach T point
Bytes 18-19: Challenge Course 3, time to reach O point
Bytes 20-21: Challenge Course 3, time to reach J point
Bytes 22-23: Challenge Course 3, time to reach E point
Bytes 24-25: Challenge Course 3, time to reach Z point

Bytes 26-27: Challenge Course 1, time to reach T point
Bytes 28-29: Challenge Course 1, time to reach O point
Bytes 30-31: Challenge Course 1, time to reach J point
Bytes 32-33: Challenge Course 1, time to reach E point

Bytes 34-35: Beginner Course 0, time to reach Z point
Bytes 36-37: Beginner Course 0, time to reach T point
Bytes 38-39: Beginner Course 0, time to reach O point
Bytes 40-41: Begginer Course 0, time to reach J point
Bytes 42-43: Begginer Course 0, time to reach E point

examples of time records: 77 00 -> 77 seconds
                20 01 -> 120 seconds

Points
For the Beginner Course 0, those are the values: 01 (point A) to 1A (point Z)
For the Challenger Courses (1, 2 or 3), the values are: 1B (point A) to 34 (point Z)

After to reach the Z point of the Course 3, the game start again with this third Challenge. There is an internal byte (temporal) that increments with each Challenge finished. Look at the image attached to the adress E510. The value is 03, Challenge Course 3. After you finish it, this value increments to 04,05,06,07,... , but the text on the screen and the records saved is always for the third challenge.

I hope this help you to complete those games.


Thank you! I'll finish Moon Patrol this morning, and post an update some time today with this information!

Thanks for all your hard work on this Fyrecrypts and thanks Cananas for your help with the decoding.

Fyrecrypts thanks also for helping out in my CPWizard thread. Would it be possible to add a try and catch to Program.cs file so that it will exit gracefully and output the error in a format such as String.Format("Error: Program Exception {0}\r\n{1}", ex.Message, ex.StackStrace) because I check the output of HiToText.exe to see if it has sent "Error:" and then I quietly fail in the background if it does. Right now if the program has an exception it will pop up an annoying message. A simple try and catch inside Main will fix that.

I haven't had a chance to look at the "additional" scores for things like Track and Field yet but I will as soon as I get some spare time. When will you be making an offical release of this version? CPWizard already supports any number of columns so I'm not sure if that is how you've implemented the extra info? Can you give a quick demo of the output the new scores will look like and maybe post a Track and Field hi file for me to test it with?

The new official release is already out, and yeah, I really should be handling exceptions, right now it's extremely ungraceful and just requires that the user know a lot about the application. The additional scores get their own set of columns that are not attached to the main data in any way. For track and field there's a header line that precedes the standard scores ("100M WORLD RECORDS" or something like that, I can't remember the exact text right now), then the next line is "RANK|TIME|NAME" Then the 3 visible records follow. Then comes the next alternate score, the long jump world records. I'll post an example of what it looks like in about an hour or so.
Title: Re: HiScanner/HiToText (Version 2009.02.05)
Post by: Fyrecrypts on February 06, 2009, 10:29:52 am
Example of track and field output:

RANK|SCORE|NAME
1|100000|..H
2|100000|..H
3|41080|BBB
4|33780| .Z
5|29680|ABC
6|26940|. 
7|21000|AAA
8|19600|ABZ
9|12060|...
10|8390|IPW
11|7660|JKL
12|7120|GHI
13|5800|...
14|5160|CCC
15|5160|Z.Z
16|0|   
17|0|   
18|0|   
19|0|   
20|0|   
21|0|   
22|0|   
23|0|   
24|0|   
25|0|   
26|0|   
27|0|   
28|0|   
29|0|   
30|0|   
31|0|   
32|0|   
33|0|   
34|0|   
35|0|   
36|0|   
37|0|   
38|0|   
39|0|   
40|0|   
41|0|   
42|0|   
43|0|   
44|0|   
45|0|   
46|0|   
47|0|   
48|0|   
49|0|   
50|0|   
51|0|   
52|0|   
53|0|   
54|0|   
55|0|   
56|0|   
57|0|   
58|0|   
59|0|   
60|0|   
61|0|   
62|0|   
63|0|   
64|0|   
65|0|   
66|0|   
67|0|   
68|0|   
69|0|   
70|0|   
71|0|   
72|0|   
73|0|   
74|0|   
75|0|   
76|0|   
77|0|   
78|0|   
79|0|   
80|0|   
81|0|   
82|0|   
83|0|   
84|0|   
85|0|   
86|0|   
87|0|   
88|0|   
89|0|   
90|0|   
91|0|   
92|0|   
93|0|   
94|0|   
95|0|   
96|0|   
97|0|   
98|0|   
99|0|   
100|0|   
101|0|   
102|0|   
103|0|   
104|0|   
105|0|   
106|0|   
107|0|   
108|0|   
109|0|   
110|0|   
111|0|   
112|0|   
113|0|   
114|0|   
115|0|   
116|0|   
117|0|   
118|0|   
119|0|   
120|0|   
121|0|   
122|0|   
123|0|   
124|0|   
125|0|   
126|0|   
127|0|   
128|0|   
129|0|   
130|0|   
131|0|   
132|0|   
133|0|   
134|0|   
135|0|   
136|0|   
137|0|   
138|0|   
139|0|   
140|0|   
141|0|   
142|0|   
143|0|   
144|0|   
145|0|   
146|0|   
147|0|   
148|0|   
149|0|   
150|0|   
151|0|   
152|0|   
153|0|   
154|0|   
155|0|   
156|0|   
157|0|   
158|0|   
159|0|   
160|0|   


100M WORLD RECORD
RANK|TIME|NAME
1|0.00sec|
2|0.00sec|
3|0.00sec|
LONG JUMP WORLD RECORD
RANK|DISTANCE|NAME
1|9.94m|NLA
2|9.14m|NLA
3|9.00m|NLA
JAVELIN WORLD RECORD
RANK|DISTANCE|NAME
1|68.44m|ABZ
2|67.68m|AAA
3|67.55m| .Z
110M HURDLES WORLD RECORD
RANK|TIME|NAME
1|0.00sec|
2|0.00sec|
3|0.00sec|
HAMMER TOSS WORLD RECORD
RANK|DISTANCE|NAME
1|77.11m|BBB
2|0.00m|
3|0.00m|
HIGH JUMP WORLD RECORD
RANK|HEIGHT|NAME
1|0.00m|
2|0.00m|
3|0.00m|
Title: Re: HiScanner/HiToText (Version 2009.02.05)
Post by: Fyrecrypts on February 06, 2009, 11:30:16 am
Quickly did a new release that adds more exception handling to the read and write flags, so you shouldn't see any more unhandled exceptions causing intrusive popups. Also patched up Moon Patrol with Cananas' findings.

Thanks for the praise by the way, I'm glad to see people enjoying this application. :)
Title: Re: HiScanner/HiToText (Version 2009.02.06)
Post by: Fyrecrypts on February 11, 2009, 04:24:59 pm
Quickly put out another release with support for Tetris and Zookeeper. Zookeeper looks like it has two hi score tables, however it just acts as one big hi score table, so that's how I'm treating it.

I also added support for an update flag, HiToText -u "[ReferrerName]" is the usage, where ReferrerName is just something I'm using to track a few statistics. My hope is that when the FE people use that command to try and update HiToText, they just put in the name of their FE for ReferrerName. The command will display a URL to the most up-to-date HiToText, or will send "No newer version available." to the console if that version of HiToText is the latest. This method could also throw an exception prepended with "Error:". I would expect this to occur when there are network issues.

Note: The -u command will not actually download the new HiToText if available, it will only display the URL to get it. I will let the FE devs determine how they wish to update HiToText themselves. I have a few reasons for this, I don't want to make HiToText into more than just a single executible, and I want to allow the FE devs to determine when/how to update HiToText if they find a new version available.
Title: Re: HiScanner/HiToText (Version 2009.2.11.0)
Post by: Cananas on February 13, 2009, 04:28:24 am
005

The actual hiscore.dat data only saves the first and second score, but there is a Top5, so I suggest this changes:

Incorrect data
Code: [Select]
005:
0:c911:04:00:00
0:c909:01:05:05

New fixed data to save the top5
Code: [Select]
005:
0:c910:0b:99:00

Byte 0: It is always 99. I'm using to check when the data must be copied to the game. Previously, this check was done with this entry: 0:c909:01:05:05, but It doesn't take the same value all the time. So, BTW, I looked for a constant value.

Bytes 1-2: Is the first score (00 17, is 17000 points)

Bytes 3-4: The second score (20 16, is 16200 points)

Bytes 5-6: Score 3. Is not shown in the game, but is here (30 13, is 13300 points)

Bytes 7-8: Score 4. Like score 3, is not shown (50 00, 00500 points)

Bytes 9-10: Score 5. Also not showed in the game (00 00, is of course 00000 points)
Title: Re: HiScanner/HiToText (Version 2009.2.11.0)
Post by: Cananas on February 13, 2009, 04:52:08 am
Eight Ball Action (8ballact, 8ballat2, 8bpm)

Like 005, the hiscore data for this games misses some important things, so I suggest this new data:
Code: [Select]
8ballact:
8ballat2:
0:1d28:06:00:1b
0:1d46:0a:00:00
0:1d2e:06:00:1b
0:1d50:0a:00:00
0:1d34:06:00:1b
0:1d5a:0a:00:00
0:1d3a:06:00:1b
0:1d64:0a:00:00
0:1d40:06:00:1b
0:1d6e:0a:00:00
8bpm:
0:1c6c:06:00:1b
0:1c8a:0a:00:00
0:1c72:06:00:1b
0:1c94:0a:00:00
0:1c78:06:00:1b
0:1c9e:0a:00:00
0:1c7e:06:00:1b
0:1ca8:0a:00:00
0:1c84:06:00:1b
0:1cb2:0a:00:00

As we must change the data of the hiscore.dat, I am also changed the order. Now it is more simple, like phoenix: Score1, name1, score2, name2,...

Bytes 0-5: Score1 (00 00 00 1c 1b 1b => 1,000 points), so maximum score is 24 24 24 24 24 24 =>9,999,990 (last number is always 0)
Bytes 6-15: Name1 - Initials (03 01 12 => CAR) (10 characters max. Only 8bpm can only shows 4 letters)
Bytes 16-21: Score2
Bytes 22-31: Name2
Bytes 32-37: Score3
Bytes 38-47: Name3
Bytes 48-53: Score4
Bytes 54-63: Name4
Bytes 64-69: Score5
Bytes 70-79: Name5

Numbers: 0=1b, 1=1c, 2=1d, 3=1e, 4=1f, 5=20; 6=21, 7=22, 8=23, 9=24
Letters: A=01, B=02, C=03......L=0c, M=0d......R=12, S=13,...X=18, Y=19, Z=1A
Title: Re: HiScanner/HiToText (Version 2009.02.05)
Post by: headkaze on February 13, 2009, 06:12:37 pm
Quickly did a new release that adds more exception handling to the read and write flags, so you shouldn't see any more unhandled exceptions causing intrusive popups.

There are still some people experiencing exceptions with HiToText, just thought I'd let you know. There is a post (http://www.gameex.info/forums/index.php?showtopic=6995) about it on our forums.
Title: Re: HiScanner/HiToText (Version 2009.2.11.0)
Post by: Fyrecrypts on February 15, 2009, 01:02:21 pm
005

Eight Ball Action (8ballact, 8ballat2, 8bpm)

Thank you Cananas these games will be in the next version of HiToText.

There are still some people experiencing exceptions with HiToText, just thought I'd let you know. There is a post (http://www.gameex.info/forums/index.php?showtopic=6995) about it on our forums.

Thanks for the heads up, I believe this issue has been resolved, however I still have some testing I'd like to do.
Title: Re: HiToText (Version 2009.2.11.0)
Post by: RetroBorg on February 16, 2009, 06:36:24 am
Fyrecrypts,

I just got this up and running in HyperSpin so I thought I would try and help out.

Hopefully this is what you are after:

Juno First (junofrst.hi)

Bytes 0 to 2 is the score
Bytes 3 is the level/screen
Bytes 4 to 6 is initials
Bytes 7 is unknown
Bytes 8 to 10 is the score
Bytes 11 is the level/screen
Bytes 12 to 14 is initials
Bytes 15 is unknown

Let me know if this is what you're after or you need something else etc.

Happy to do plenty of games.

Cheers.

Phil
Title: Re: HiToText (Version 2009.2.11.0)
Post by: Fyrecrypts on February 16, 2009, 11:59:32 pm
Fyrecrypts,

I just got this up and running in HyperSpin so I thought I would try and help out.

Hopefully this is what you are after:

Juno First (junofrst.hi)

Bytes 0 to 2 is the score
Bytes 3 is the level/screen
Bytes 4 to 6 is initials
Bytes 7 is unknown
Bytes 8 to 10 is the score
Bytes 11 is the level/screen
Bytes 12 to 14 is initials
Bytes 15 is unknown

Let me know if this is what you're after or you need something else etc.

Happy to do plenty of games.

Cheers.

Phil


Yes, this is a great start! Other really helpful information would be the characters that can be used for the name, and their corresponding hex values, the number of scores the game displays, and the format of the score. Take a look at NOP or Cananas' posts as well to see all of the information they provide, you don't have to give that much information because really anything is better than nothing. =D

Thanks again for the info, and I will try and get Juno First into the next version of HiToText!
Title: Re: HiToText (Version 2009.2.21.0)
Post by: Fyrecrypts on February 21, 2009, 12:31:19 pm
New version out. Mostly just some new games and some modifications to the hiscore.dat file for the games Cananas decoded a while back (005, and 8 Ball Action), and Alien Syndrome which was incorrectly omitting the 7th place coins value.

Other games included are Paperboy, Gauntlet/Gauntlet 2, and Super Puzzle Fighter 2 Turbo. Paperboy is a little strange, so those of you wanting to add scores through HiToText will need to know that you cannot add a normal hi score, you must add an alternate score for either easy, middle, or hard. Paperboy actually grabs the top 10 scores from the combined 30 scores shown for the 3 difficulties to make up the Grand Slam scores.

Again, similarly to previous version if you have old scores you want to save for 005, 8 Ball Action, or Alien Syndrome you will need to follow the steps I've outlined numerous times in my previous posts.

Enjoy!
Title: Re: HiToText (Version 2009.2.21.0)
Post by: Cananas on February 27, 2009, 04:08:27 am
4D Warrior (4dwarrior)

The hiscore.dat is not perfect. It misses some data (not used) in the 10th name, so BTW, it would be a good idea to fix it.New code:
Code: [Select]
4dwarrio:
0:d300:a0:00:20
0:c017:03:00:02

byte 0-2: Score1 => 00 33 02->023,300 points
byte 3-15: Name1 => Even by default some names are longer that 3 characters,
                    the game only shows the first 3 letters. You can only entry 3 in the game.
                    The rest of the string will be 00.
                    41:A...5A:Z, 20:space, 21:red helmet, 29:heart, 2c:,, 2e:., 2F:doll, 6e:/
byte 16-18: Score2
byte 19-31: Name2
byte 32-34: Score3
byte 35-47: Name3
...
byte 144-146: Score10
byte 147-159: Name10

byte 160-162: HiScore => 15 43 02-> 24,315 points


Aqua Jack (aquajack, aquajckj)

10 top scores: Score, round, name and plays

byte 0-3: The Top Score => 00 13 03 50 -> 00130,350 points
byte 4-7: Score1: the same format as above.
byte 8-11: Score2
byte 12-15: Score3
...
byte 36-39: Score9
byte 40-43: Score10
byte 44-45: Round1 => 00 03 -> Round 4, 00 00 -> Round 1
byte 46-47: Round2
byte 48-49: Round3
...
byte 60-61: Round9
byte 62-63: Round10
byte 64-66: Name1 => 41:A...5A:Z, 20:space, 21:!, 2e:., 5E:left arrow (yes, it's possible,
            ifyouhaveselected when the time goes out!)
byte 67: Always 20h (an space)
byte 68-70: Name2
byte 71: 20h
byte 72-74: Name3
...
byte 96-98: Name9
byte 99: 20h
byte 100-102: Name10
byte 103: 20h
byte 104-105: Play1
byte 106-107: Play2
...
byte 120-121: Play9
byte 122-123: Play10


NOTE: According to hiscore.dat, the order of the records is wrong, but it seems that is ok
      if you take account one thing:
      The Scores are ordered by round and after that, by the score. It seems that the number
      of plays does not matter.
Title: Re: HiToText (Version 2009.2.21.0)
Post by: Cananas on February 27, 2009, 04:20:09 am
Extermination (extrmatn, extrmatj and -new- extrmatu)

5 top scores with this structure:

byte 0: Fixed1. Always 00
byte 1-3: Score1 -> 99 13 25 is 9,913,250 points (The last zero is always added)
byte 4: Round1 => Round-1 so 02 is round 1

  00 01 02 03 04 05 06 07 08  09  0a  0b
  ---------------------------------------
  1   2  3  4  5  6  7  8 ALL ALL ALL ALL

byte 5-7: Name1: 3 Initials. Normal letters and !?. and space allowed.

byte 8: Fixed2. is 00
byte 9-11: Score2
byte 12: Round2
byte 13-15: Name2

byte 16: Fixed3. is 00
byte 17-19: Score3
byte 20: Round3
byte 21-23: Name3

byte 24: Fixed4. is 00
byte 25-27: Score4
byte 28: Round4
byte 29-31: Name4

byte 32: Fixed4. is 00
byte 33-35: Score4
byte 36: Round4
byte 37-39: Name4

To the end:

byte 40-42: HiScore. is the top score.

With the actual hiscore.dat, we have this: 10 49 30 is 3,049,100 points.
So the order of bytes is inverted respect of the topscores.

To make things easier for hitotext, I would suggest this change in the hiscore.dat. Also new clone added:
Code: [Select]
extrmatn:
extrmatj:
extrmatu:
0:e8a5:28:00:55
0:e888:01:00:00
0:e887:01:49:49
0:e886:01:00:00

Now the top score will be 30 49 10 -> 3,04,100 points.The same order of the 5 Top scores.



Heavy Smash (-new- hvysmshj, hvysmsh, hvysmsha)

The hiscore.dat is wrong with this game. It misses the first byte.
Suggested changes:
Code: [Select]
hvysmsh:
hvysmshj:
hvysmsha:
0:100400:50:01:00
0:10000c:04:00:00

There is 5 top score and the highscore:

byte 0: Rank1.It is always 01,of course
byte 1-3: Name1 => 3 Initials 00=A...19=Z, 20=0...23=9, 24=!, 25=,, 26=., 27==, 28=?
byte 4-7: Score1 => 01 02 03 04 -> 04,030,201 points. Max is 99 99 99 09 -> 09,999,999 points
                     00 00 01 00 -> 100,000 points
byte 8-9: Lost1 => 99 01 -> 199, 01 00 ->1 Max 999 (99 09)
byte 10-11: Goals1 => 10 00 ->10, 99 01->199
byte 12: Cnt1 => 99 -> 99, 04->4
byte 13: Flag1
               00=USA
               01=JAP
               02=ESP
               03=BRA
               04=GER
               05=ENG
               06=ITA
               07=EGY
               08=AUS
               09=SPC or CYB (when a goal is scored, it shows like CYB)

byte 14-15: Unused1

The same for the 2, 3 4 ad 5 scores:
byte 16, start Score2 with the same structure
byte 32, start Score3
byte 48, start Score4
byte 64, start Score5

byte 80-83: HiScore. The hiscore => like the others scores. 00 00 90 03->03,900,000 points



Image Fight (imgfight, -new- imgfigho)

Added new clone in hiscore.dat (not changes in the code):
Code: [Select]
imgfight:
imgfigho.
0:a334f:78:09:20

Structure:

byte 0-2: Score1 => 09 42 01 is 01,420,900 points (last two 0 are always added)
byte 3: Stage1 => until 99 plus bytes f0=>P0 to f9=>P9
byte 4-6: Score2
byte 7: Stage2
byte 8-10: Score3
byte 11: Stage3
....
byte 36-38: Score10
byte 39: Stage10
byte 40-47: Name1 => up to 8 normal letters
byte 48-55: Name2
byte 56-63: Name3
....
byte 104-111: Name9
byte 112-119: Name10
Title: Re: HiToText (Version 2009.2.21.0)
Post by: TheShanMan on March 08, 2009, 04:58:58 pm
Finally getting around to trying this to fix some high scores where my initials got messed up.

Is it me or are the download links in the 1st post broken? I've tried IE and Firefox and they both give me errors. I discovered it's included with CPWizard though so I'm playing with that one.

How do I overwrite an entry in a high score table rather than insert a new one? I don't want to push other scores down - I want to replace one (basically just correct the initials).
Title: Re: HiToText (Version 2009.2.21.0)
Post by: Cananas on March 09, 2009, 02:41:18 am
All attached files on BYOAC forum are unable to download. Don't not why.
Title: Re: HiToText (Version 2009.2.21.0)
Post by: Fyrecrypts on March 09, 2009, 08:12:39 pm
All attached files on BYOAC forum are unable to download. Don't not why.

Not sure what's going on with the attachments, I believe the appropriate people are aware of the problem however. In the meantime, I'll try to put up a link where these files can be downloaded. Also, thanks very much for the game info too, I will be adding them to the next version which I will hopefully get out before the end of the week. I've had some sort of plague cold that kept me from doing anything for about a week.

Finally getting around to trying this to fix some high scores where my initials got messed up.

Is it me or are the download links in the 1st post broken? I've tried IE and Firefox and they both give me errors. I discovered it's included with CPWizard though so I'm playing with that one.

How do I overwrite an entry in a high score table rather than insert a new one? I don't want to push other scores down - I want to replace one (basically just correct the initials).

Currently, there isn't an easy way to do that, you can delete the .hi file after writing down the scores, re-run the game to generate a blank .hi file and then one by one insert your new scores. However, if you can wait a while, I am working on an application that would convert all your hi scores in .hi files and .nv files to a text file which could be modified by hand, and then this same application would let you plug those scores back in. However, I do have limited time, and progress on this score importer/exporter would take a significant amount of development time away from HiToText. Tradeoffs I suppose... Given that the hard part of that code is already completed in HiToText, I can't imagine the development time would really be that long though.

Since I'm already posting as well, I may as well mention that the new version of HiToText will probably be out at the end of this week with around 9 or 10 new games added. =) Sorry for the delay, but debilitating colds happen I guess.
Title: Re: HiToText (Version 2009.2.21.0)
Post by: Fyrecrypts on March 09, 2009, 08:16:27 pm
Edit: The links that were posted here are obsolete, and have been removed.
Title: Re: HiToText (Version 2009.2.21.0)
Post by: TheShanMan on March 09, 2009, 11:41:33 pm
That's cool, but would it be a lot of work to add a command line parameter that tells hitotext to replace an entry rather than insert it amongst all the existing entries? I think that would be a handy switch. I'm sure I'm not the only one who occasionally screws up the initials!

Very nice app, though, and it's cool to see that other apps are finding useful ways to incorporate it. :cheers:
Title: Re: HiToText (Version 2009.2.21.0)
Post by: Fyrecrypts on March 10, 2009, 12:53:37 am
That's cool, but would it be a lot of work to add a command line parameter that tells hitotext to replace an entry rather than insert it amongst all the existing entries? I think that would be a handy switch. I'm sure I'm not the only one who occasionally screws up the initials!

Very nice app, though, and it's cool to see that other apps are finding useful ways to incorporate it. :cheers:

Kind of, I'd have to modify every game that's been done so far to allow that. It wouldn't be hard, just time consuming and tedious. =)

Glad you're enjoying the app!
Title: Re: HiToText (Version 2009.2.21.0)
Post by: TheShanMan on March 10, 2009, 12:57:01 am
Oh I see. What a pain in the butt.
Title: Re: HiToText (Version 2009.2.21.0)
Post by: FrizzleFried on March 12, 2009, 04:28:18 pm
If someone with the know-how would look at (A) VS Balloon Fight and (B) Ataxx,  I would appreciate it.  Especially Balloon Fight.  I absolutely adore that game and it sucks the best version (the VS version) doesn't save high scores.

THANKS!
Title: Re: HiToText (Version 2009.2.21.0)
Post by: Cananas on March 17, 2009, 04:05:29 am
For Vs. Ballon Fight, add this lines into de the hiscore.dat to start saving your hiscores:

Code: [Select]
balonfgt:
0:6100:1e:00:00
0:6124:0f:0a:10

Probably, it will be added to hitotext in the next version.

About Ataxx, things are a bit more complicated. The records are stored in the nvram (.nv file). I don't have decrypted all the neccesary data and there are several checksums to check the integrity of the file.

** EDIT ** Spelling mistake
Title: Re: HiToText (Version 2009.2.21.0)
Post by: Fyrecrypts on March 17, 2009, 09:12:04 am
For Vs. Ballon Fight, add this lines into de hiscore.dat to start saving your hiscores:

Code: [Select]
balonfgt:
0:6100:1e:00:00
0:6124:0f:0a:10

Probably, it will be added to hitotext in the next version.

About Ataxx, things are a bit more complicated. The records are stored in the nvram (.nv file). I don't have decrypted all the neccesary data and there are several checksums to check the integrity of the file.

Nice! I'll get it added for sure! The problems you're having with Ataxx are the same problems I've been having with QBert. =/
Title: Re: HiToText (Version 2009.2.21.0)
Post by: FrizzleFried on March 18, 2009, 06:14:59 pm
For Vs. Ballon Fight, add this lines into de hiscore.dat to start saving your hiscores:

Code: [Select]
balonfgt:
0:6100:1e:00:00
0:6124:0f:0a:10


This worked!  I now can save high scores on one of my favorite of all time games!  THANK YOU!!!!!!!!
Title: Re: HiToText (Version 2009.2.21.0)
Post by: Fyrecrypts on March 24, 2009, 10:34:49 am
Okay, so I'm way behind schedule, I thought I would have a release out 2 weeks ago, but I just haven't had the time that I thought I would. However, it looks like I should actually have a release out tomorrow barring any other major problems. The update will have all the games Cananas has deciphered (4D Warrior, Aquajack, Extermination, Heavy Smash, Image Fight, and Vs Balloon Fight, plus some new clones added to Arkanoid). It will also have Juno First, Pinball Action, R-Type 2, and Strikers 1945 II.

My time seems to be really limited right now, and is looking pretty bleak in the future as well. I don't think updates will be as frequent as they have been. =/ Thankfully, there's been a lot of help from the fans of HiToText and we've gotten many games decoded because of it, thanks very much for all the help. It really is greatly appreciated, and tomorrow's release would be much smaller without it.
Title: Re: HiToText (Version 2009.2.21.0)
Post by: Fyrecrypts on March 25, 2009, 12:30:51 pm
All right, new version is out:

Edit: Link removed as it's obsolete. Check main post for the most up-to-date version.

At the last minute Cananas sent me some more games to add, so in addition to the above games, also included are: 10 Yard Fight, Bullfighter, Scramble/Explorer, Eyes, Karate Champ, and Violent Fight.
Title: Re: HiToText (Version 2009.3.25.0)
Post by: Fyrecrypts on April 14, 2009, 07:02:04 pm
Huge update tomorrow due exclusively to work from Cananas. Sneak peak...

...Robotron.
Title: Re: HiToText (Version 2009.3.25.0)
Post by: Fyrecrypts on April 15, 2009, 11:29:32 am
Note: I am using my personal webspace for hosting these updates this time, and do not have a lot of bandwidth. If you do not need or want the source files for HiToText please only download the exe and hiscore.dat.

[links removed as they were obsolete. Please see first post for downloads.]

Big thanks to Cananas for providing 100% of the new games added for this release.

New games are: Amidar, Arkanoid 2, Arkanoid Returns, Asteroids Deluxe, Bad Dudes vs. Dragonninja, Bagman, Battle Zone, Carnival, Double Dribble, Frogs, Green Beret, Robotron, Super Doubles Tennis, Sea Wolf, and Seawolf II

You will need the new hiscore.dat for many of these games as there were bugs in the older versions. In addition Cananas has enhanced Sea Wolf, Frogs, and Arkanoid 2 to be a little less picky about when you start and end the games to ensure the scores save.
Title: Re: HiToText (Version 2009.4.15.0)
Post by: Wob on April 15, 2009, 09:11:18 pm
Hi,

Just wondering if this app is still working towards being able to share the high scores across machines?  I would love to be able to set up mine and a few mates machines so that we were battling each other for high scores.

Thanks,
Wob
Title: Re: HiToText (Version 2009.4.15.0)
Post by: Fyrecrypts on April 15, 2009, 09:14:26 pm
Hi,

Just wondering if this app is still working towards being able to share the high scores across machines?  I would love to be able to set up mine and a few mates machines so that we were battling each other for high scores.

Thanks,
Wob

Stay tuned... Something is coming... However, the old app (HiScanner) will work, but it needs some heavy setup first. I removed it from this post because I don't think it was very popular. If you're comfortable setting up your own webserver and setting up some MySQL DBs I'm more than happy to ship the code to ya. =)
Title: Re: HiToText (Version 2009.4.15.0)
Post by: brianoneill on April 22, 2009, 11:09:03 am
Been away from MAME for some time and this HiToText seems pretty damn cool. Congrats :)

I didn't see Twin Cobra in the supported games list. Is it at all possible it will be supported ?

What could I do to help it get supported/cracked ?
Title: Re: HiToText (Version 2009.4.15.0)
Post by: Fyrecrypts on April 22, 2009, 11:46:53 am
Been away from MAME for some time and this HiToText seems pretty damn cool. Congrats :)

I didn't see Twin Cobra in the supported games list. Is it at all possible it will be supported ?

What could I do to help it get supported/cracked ?

There are thousands of games, and only a few hundred currently deciphered, so we're just beginning to scratch the surface of what HiToText will become. The best way to get a game you like supported is to first see if it's in the hiscore.dat. twincobr is! If a game is not in the hiscore.dat that means one of us would need to actually go into MAME's debugger and find the location in memory where the hi score tables are stored for that game, and create an entry before we could move on to the next step.

Now that we know a .hi file is generated we have a lot of options depending on the comfort level you have. I'll start from the easiest to hardest (IMO) ways to help. The first thing to do is get hi scores in the game and ensuring that you capture the most data that you can while doing so. For entering names, have all of the entries contain all of the different letters/numbers/symbols that are possible to enter. So you may have 5 scores, with names like: ABZ, 019, #$!, [](space), and ,.-

Now take a screenshot of the hi score screen, and take the .hi file generated, set them aside and either send them to me, or try and decipher the file yourself (more on that later). The .hi file is the same name of the rom name in the hi folder with a .hi extension added to it.

Two things to note about this, usually there is a pattern with letters and numbers so getting every single letter/number in the names is almost always a waste of time. With the name ABZ getting all 26 letters is possible, and with 019 getting all numbers is possible. Secondly, you may not be able to get all the possible characters into one high score table, so when you fill up the table with one set of scores save the .hi file, and screen shot, then fill up the table with another set of scores/names save the .hi file and screen shot, and repeat as necessary. Captain America took 3 separate.hi files because there were so many characters, but only 5 scores were saved.

Other games such as DoDonPachi have many other fields that need to be tracked, like the ship you used, the area you got to, the type of powerup used, etc... All of those things need to be deciphered as well. Super Puzzle Fighter 2 Turbo had special characters as well that I needed to include. Anything that's saved, must be known. =)

Now, if you feel really comfortable with patterns and bytes you can try deciphering the .hi file. Some of the earlier posts with NOP and some of the later posts with Cananas show how this can be done. They open the .hi file in some sort of hex editor (I use WinHex) look at the bytes and try and find patterns. The more you do this the better you'll get at it, it also helps to know the manufacturer since they tend to store data in the same way per game. Marble Madness and Road Runner are great examples, Road Runner would have been difficult had Marble Madness not already been deciphered. Because I knew they were both Atari System 1 games I knew what to look for in Road Runner. A lot of the time the hex editor will help you out as well because many games encoded names and sometimes even scores in ASCII format, so frequently you'll see your names right away. From there it's only a matter of tracking the other data, scores are usually in literal format, BCD format, or hex. Things like rounds reached are usually one byte. Sometimes you will have to change the data, save the .hi file and rerun the game to see what changed in the hi score tables. I use this to save a lot of time in seeing what the game displays for areas reached. It's a pain to try and beat level 1-4 die, and then beat level 1-5, etc... By finding and modifying the level byte(s) I can usually crack this in 5 minutes instead of 5 hours.

If you've got the .hi file deciphered and figured out what every byte does or doesn't do (some bytes do not affect the scores), and you think you can help even more you can always write the actual code module used in HiToText. The source is completely open, and if you can code, I would recommend picking it up. All of the games follow the same basic format so you can usually run through some existing game that's similiar to the game you're deciphering and use that as a baseline. Running through the code for a game should give you an idea of what's necessary. Some games are much more complicated than others and have different features: Track and field also keeps track of "alternate" scores: 100m dash, javelin throw, etc... Other games like Centipede actually read and write two different files. If you feel really comfortable programming, take a look at these if the game you want to decipher is complicated.

Getting through any of the above steps is help, and with thousands more games to decipher, we can use all the help we can get. I'm always glad to hear from people who enjoy HiToText. =)
Title: Re: HiToText (Version 2009.4.15.0)
Post by: brianoneill on April 22, 2009, 12:14:48 pm
Thanks for the response :D

I had jujst started looking at the teincobr.hi file.
Found ...
0A = A -> 0F = F
10 = G -> 19 = P
1A = Q -> 1F = V
20 = W -> 23 = Z

Also found where most of the scores go and also the Names.

Its a start :D
Title: Re: HiToText (Version 2009.4.15.0)
Post by: Fyrecrypts on April 22, 2009, 12:16:09 pm
Thanks for the response :D

I had jujst started looking at the teincobr.hi file.
Found ...
0A = A -> 0F = F
10 = G -> 19 = P
1A = Q -> 1F = V
20 = W -> 23 = Z

Also found where most of the scores go and also the Names.

Its a start :D

Sure is!
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Fyrecrypts on May 12, 2009, 11:01:05 pm
Yes, the new title is a teaser, and no the new project cannot be announced yet. However, a beta should be coming soon!
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 13, 2009, 06:11:01 pm
Hi Guys,

My first attempt at deciphering a game, this one at least seems simple, let me know if I am missing anything.

It is for Kung-Fu Master (kungfum)

Code: [Select]
We have 20 high scores in the game

- Bytes 00-02 (00 14 95): Is the lowest (#20) score. In this case, 14950 points (The trailing 0 is added to the end of all scores in game)
- Bytes 03-05 (54 41 2E): Is the Initials of the lowest score (3 characters) (In this case TA.)

- Bytes 06-08 (00 15 38): Is the next score. 15380 points
- Bytes 09-11 (41 41 41): In this case AAA

and so on until

- Bytes 114-116 (00 48 52): Is the highest (#1) score. 48520
- Bytes 117-119 (4E 2E 41): In this case N.A

and finally

- Bytes 120-122 (52 48 00): This is the High score shown during game play in the top centre, it is stored in reverse, in this case 48520 (The trailing 0 is still added in game)

The maximum score shown in game is 999990 even if I change the score to (99 99 99) so it appears the the first digit is ignored.

The characters
41: A
42: B
43: C
44: D
45: E
46: F
47: G
48: H
49: I
4A: J
4B: K
4C: L
4D: M
4E: N
4F: O
50: P
51: Q
52: R
53: S
54: T
55: U
56: V
57: W
58: X
59: Y
5A: Z
2E:. (period) (this is the period used in the default high scores)
5B:. (period) (this is the period used when a player enters a period in their score)
20:  (blank) (You can't select blanks, but you can select END, any characters not ended when you select end will be blank)

Cheers,
Wob
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Fyrecrypts on May 13, 2009, 06:27:55 pm
That looks good to me, I'll try and get an update done soon, and add that game.

Thanks for the help. =)
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 14, 2009, 01:50:55 am
Glad to be able to contribute in someway.  Here is attempt number two, this needed a little more deciphering.

For Wonder Boy (wboy)

Code: [Select]
We have 21 high scores in the file (only 20 are shown on the high score board) and the last one (#21) seems to be missing the Ranking bytes

- Bytes 00-01 (20 11): Ranking, In this Case #1
- Bytes 02-07 (20 20 33 30 30 30): Is the highest score (#1). In this case, 30000 points (The trailing 0 is added to the end of all scores in game)
- Bytes 08-10 (42 55 43): Is the Initials of the highest score (3 characters) (In this case BUC)
- Bytes 11-15 (20 20 20 20 20): These are extra characters for the name, but in game you can only enter 3 Characters, I guess you can just add this to the name, but it should always be blank for legit names entered in game (5 characters)

- Bytes 16-17 (20 12): Ranking #2
- Bytes 18-23 (32 38 30 30): Is the next score. 28000 points
- Bytes 24-26 (4D 49 43): Is the next name In this case MIC
- Bytes 27-31 (20 20 20 20 20): Extra name characters

and so on until

- Bytes 304-305 (12 10): Ranking #20
- Bytes 306-311 (20 20 20 33 34 30): Is the lowest tabled score (#20). 3400 points
- Bytes 312-314 (7E 7F 20): Name = Male Heart Blank (See Characters)
- Bytes 315-319 (20 20 20 20 20): Extra name characters

This line is blank (all 00) in a fresh hi file, once a score is added #20 is pushed down to this line.
- Bytes 320-321 (00 00): No Ranking on this entry
- Bytes 322-327 (20 20 20 33 33 30): Is the lowest recorded score (#21). 3300 points
- Bytes 328-330 (20 20 20): Name = Blank Blank Blank
- Bytes 331-335 (20 20 20 20 20): Extra name characters

and finally

- Bytes 336-348 (01 08 01 08 13 08 10 08 10 08 10 08 10): This is in High Score shown during the Game (Top Centre) it is deciphered as follows.

Ignore the 08 Values, For the other bytes I think the first bit sets if it is used 0 = Off, 1 = On, and the second is the value. No trailing 0 is added here so examples would be;
(01 08 01 08 13 08 10 08 10 08 10 08 10) = 30000
(01 08 14 08 13 08 12 08 15 08 18 08 10) = 432580
(11 08 12 08 13 08 14 08 15 08 16 08 17) = 1234567 (Note: This score should never appear normally as the last digit should always be a 0, but it will accept it)

I have tested by modify values in the file and loading the game.  If the high score and the #1 table score go out of sync, then funny things happen :)

The maximum score shown in game is 9999990 = (39 39 39 39 39 39)

This one appears to store both the Score and Name in ASCII Code, accept for the special characters they have. So;
Number;
30: 0
31: 1
32: 2
33: 3
34: 4
35: 5
36: 6
37: 7
38: 8
39: 9

The characters
41: A
42: B
43: C
44: D
45: E
46: F
47: G
48: H
49: I
4A: J
4B: K
4C: L
4D: M
4E: N
4F: O
50: P
51: Q
52: R
53: S
54: T
55: U
56: V
57: W
58: X
59: Y
5A: Z

Special Characters (See the attached scoreboard #14 #20 In Order)
5C: (Ring)
5E: (Lips)
7D: (Female)
7E: (Male)
7F: (Heart)
20:  (blank)

Cheers,
Wob

Just Realised I forgot to list the Ranking Codes;

Code: [Select]
Ranking Codes
(20 11): #1
(20 12): #2
...
(20 19): #9
(11 10): #10
(11 11): #11
...
(11 19): #19
(12 10): #20

So each byte is read as a digit;
10: 0
11: 1
12: 2
...
19: 9
and
20: (blank)
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 14, 2009, 09:53:09 pm
Ok, here is my next one.

Double Dragon (ddragon)

Code: [Select]
It has 5 high scores in the Table

- Bytes 00-02 (02 74 90): Is the first score (#1). In this case, 27490 points.
- Bytes 03-05 (3B 3C 3A): Is the Initials of the highest score (3 characters) (In this case . Z)

- Bytes 06-08 (02 00 00): Is the second score (#2). 20000 points
- Bytes 09-11 (30 32 2D): Is the next name In this case PRM

- Bytes 12-14 (02 00 00): Is the third score (#3). 20000 points
- Bytes 15-17 (30 32 2D): Is the next name In this case LDS

- Bytes 18-20 (02 00 00): Is the forth score (#4). 20000 points
- Bytes 21-23 (30 32 2D): Is the next name In this case JJM

- Bytes 24-26 (02 00 00): Is the fifth score (#5). 20000 points
- Bytes 27-29 (30 32 2D): Is the next name In this case TJL

- Bytes 30-32 (02 74 90): Is the in game Hiscore (Top Centre), in this case 27490 points.

Maximum score shown in game is 999999 so upto (99 99 99) is accepted input for scores.

Not as lucky with the Characters on with game as they were not standard ASCII, but it only had two non alpha characters.

The characters
21: A
22: B
23: C
24: D
25: E
26: F
27: G
28: H
29: I
2A: J
2B: K
2C: L
2D: M
2E: N
2F: O
30: P
31: Q
32: R
33: S
34: T
35: U
36: V
37: W
38: X
39: Y
3A: Z
3B: . (period)
3C:   (blank)

Cheers,
Wob

Edit: Just attached screen shots
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 14, 2009, 11:33:58 pm
Ok, next one is

Circus Charlie (circusc)

Code: [Select]
We have 7 high scores in the Table

- Bytes 00-02 (02 10 00): Is the 1st score (#1). In this case, 21000 points.
- Bytes 03-05 (41 42 5A): Is the Initials of the highest score (3 characters) In this case "ABZ"
- Byte  06    (03)      : Is the number of levels played (level doesn't need to be completed to be counted.

- Bytes 07-09 (01 98 30): Is the 2nd score (#2). 19830 points
- Bytes 10-12 (30 32 2D): Is the next name In this case "CBR"
- Byte  13    (02)      : Is the number of levels played

...

- Bytes 42-44 (00 91 40): Is the 7th score (#7). 9140 points
- Bytes 45-47 (57 40 5B): Is the next name In this case "W ."
- Byte  48    (01)      : Is the number of levels played

The Last section is related to ingame High Score
- Byte  49    (FE)      : This is a mistery Byte. It starts out as (FE) in a fresh .hi file, changes to (OO) when a hiscore is set. Altering it seems to have no effect.
- Bytes 50-52 (02 10 00): This is the in game Hiscore can be read like the score table, (21000 points). Altering this value has no effect to the score shown in game.
- Bytes 53-58 (00 00 00 01 02 10): This is the in game Hiscore in reverse. Altering this will change the value shown in game regardless of if it matches the previous 3 Bytes. Each Byte is equal to 1 digit.

The Values for this are;
00: 0
01: 1
02: 2
..
09: 9
10: (blank) This is used to wipe out the leading digit if it's not needed.

So examples are;
(00 00 00 01 02 10) =  21000
(00 03 08 09 01 10) =  19830
(01 02 03 04 05 06) = 654321 (not a valid score as it should always end in 0, but the system will accept it)

The maximum score shown in the score tables game is 999990 = (99 99 90)

For the Names this one uses standard ASCII Codes accept for the special characters (blank and period).

The characters
41: A
42: B
43: C
44: D
45: E
46: F
47: G
48: H
49: I
4A: J
4B: K
4C: L
4D: M
4E: N
4F: O
50: P
51: Q
52: R
53: S
54: T
55: U
56: V
57: W
58: X
59: Y
5A: Z
40:   (blank)
5B: . (period)
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 17, 2009, 07:29:25 pm
OK, my next one is for Bank Panic (bankp)

This one was a bit of a pain as a bug in the game means the high score table is only shown when you are entering your name into.  That any times stored in hex are a real pain.

Code: [Select]
We have 10 high scores in the table.

The score value is stored using a straight conversion, with each byte (00-09) equal to one digit in the score.

- Bytes 00-06 (09 09 09 09 09 09 09): Is the 1st score (#1). In this case, 9,999,999 points (Maximum score)
- Bytes 07-09 (43 42 53): Is the Initials of the highest score (3 characters) In this case "CBS"
- Bytes 10-11 (5F EA): This is the Time, it is number of seconds stored in reverse in HEX, in this case EA 5F = 59999secs = 999min 59secs (Maximum value)
- Bytes 12-13 (09 09): This is the Level, in this case 99 (Maximum value)
- Bytes 14-15 (00 00): These just seem to be padding, nothing I can do in game will alter these values, and changes mad to the file have no effect on the score board

- Bytes 16-22 (00 00 02 06 09 00 00): Is the 2nd score (#2). In this case, 26,900 points
- Bytes 23-25 (43 42 53): Is the Initials of the 2nd score (3 characters) In this case "CBS"
- Bytes 26-27 (9A 00): This is the Time, in this case 00 9A = 154secs = 2min 34secs
- Bytes 28-29 (00 09): This is the Level, in this case 9
- Bytes 30-31 (00 00): More Padding

...

- Bytes 144-150 (00 00 00 04 03 00 00): Is the last score (#10). In this case, 4,300 points
- Bytes 151-153 (41 41 41): Is the Initials of the last score (3 characters) In this case "AAA"
- Bytes 154-155 (51 00): This is the Time, in this case 00 51 = 81secs = 1min 21secs
- Bytes 156-157 (00 03): This is the Level, in this case 03
- Bytes 158-159 (00 00): More Padding

And finnaly the in game High Score
- Bytes 160-166: (09 09 09 09 09 09 09): In This case 9,999,999 points (Maximum Score)

For the Names this one uses standard ASCII Codes except for the period

The characters
41: A
42: B
43: C
44: D
45: E
46: F
47: G
48: H
49: I
4A: J
4B: K
4C: L
4D: M
4E: N
4F: O
50: P
51: Q
52: R
53: S
54: T
55: U
56: V
57: W
58: X
59: Y
5A: Z
3D: . (period)

Oh, and just a note, this game starts with a Blank Table (all 00's). It doesn't do the usual thing of having generic manufacture names in there.

Cheers,
Wob

P.S. Before anyone asks, no I am not that good at the game, the maximum values were manually entered :)
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 17, 2009, 10:14:27 pm
Ok, this is one of my Favourites, World Rally (wrally)

It was a pain as there are allot of values in the table, and it takes ages to show when the game is idle, then it only shows the top 5.

Anyway, I think I have it covered.

Code: [Select]
We have 36 high scores in the table.

Note: Maximum Score = (01 86 9F) = 99,999 (anything higher will give corrupt values in the table)

- Bytes 00-02 (5A 58 50): Is the Initials of the highest score (#1) (3 characters) In this case "ZXP"
- Byte  03 (03): Not sure what this byte is for but any other value will cause corruption of the table
- Byte  04 (00): Padding
- Bytes 05-07 (00 93 A8): Is the highest score (#1) stored in HEX. In this case 93 A8 = 37,800
- Byte  08 (00): Padding
- Byte  09 (FF): Is the point Score for the Easy Rally stored in HEX, in this case FF = -- (no result)
- Byte  10 (00): Padding
- Byte  11 (FF): Is the point Score for the Medium Rally stored in HEX, in this case FF = -- (no result)
- Byte  12 (00): Padding
- Byte  13 (14): Is the point Score for the Hard Rally stored in HEX, in this case 14 = 20 points
- Byte  14 (00): Padding
- Byte  15 (14): Is the point Score for the Expert Rally stored in HEX, in this case 14 = 20 points
- Byte  16 (00): Padding
- Byte  17 (28): Is the total of rally points stored in HEX, in this case 28 = 40 points

- Bytes 18-20 (55 48 46): Is the Initials of the second score (#2) (3 characters) In this case "UHF"
- Byte  21 (03): Mystery Byte
- Byte  22 (00): Padding
- Bytes 23-25 (00 90 88): Is the 2nd score (#2) stored in HEX. In this case 90 88 = 37,00
- Byte  26 (00): Padding
- Byte  27 (FF): Is the point Score for the Easy Rally stored in HEX, in this case FF = -- (no result)
- Byte  28 (00): Padding
- Byte  29 (14): Is the point Score for the Medium Rally stored in HEX, in this case 14 = 20 points
- Byte  30 (00): Padding
- Byte  31 (14): Is the point Score for the Hard Rally stored in HEX, in this case 14 = 20 points
- Byte  32 (00): Padding
- Byte  33 (FF): Is the point Score for the Expert Rally stored in HEX, in this case FF = -- (no result)
- Byte  34 (00): Padding
- Byte  35 (28): Is the total of rally points stored in HEX, in this case 28 = 40 points

...

- Bytes 72-74 (4C 4C 53): Is the Initials of the 5th score (#5) (3 characters) In this case "LLS"
- Byte  75 (03): Mystery Byte
- Byte  76 (00): Padding
- Bytes 77-79 (00 8C 3C): Is the 5th score (#5) stored in HEX. In this case 8C 3C = 35,900
- Byte  80 (00): Padding
- Byte  81 (0F): Is the point Score for the Easy Rally stored in HEX, in this case 0F = 15 points
- Byte  82 (00): Padding
- Byte  83 (14): Is the point Score for the Medium Rally stored in HEX, in this case 14 = 20 points
- Byte  84 (00): Padding
- Byte  85 (FF): Is the point Score for the Hard Rally stored in HEX, in this case FF = -- (no result)
- Byte  86 (00): Padding
- Byte  87 (FF): Is the point Score for the Expert Rally stored in HEX, in this case FF = -- (no result)
- Byte  88 (00): Padding
- Byte  89 (23): Is the total of rally points stored in HEX, in this case 23 = 35 points

...

- Bytes 630-632 (52 49 4C): Is the Initials of the Last score (#36) (3 characters) In this case "RIL"
- Byte  633 (03): Mystery Byte
- Byte  634 (00): Padding
- Bytes 635-637 (00 15 7C): Is the last score (#36) stored in HEX. In this case 15 7C = 5,500
- Byte  638 (00): Padding
- Byte  639 (FF): Is the point Score for the Easy Rally stored in HEX, in this case FF = -- (no result)
- Byte  640 (00): Padding
- Byte  641 (FF): Is the point Score for the Medium Rally stored in HEX, in this case FF = -- (no result)
- Byte  642 (00): Padding
- Byte  643 (FF): Is the point Score for the Hard Rally stored in HEX, in this case FF = -- (no result)
- Byte  644 (00): Padding
- Byte  645 (FF): Is the point Score for the Expert Rally stored in HEX, in this case FF = -- (no result)
- Byte  646 (00): Padding
- Byte  647 (FF): Is the total of rally points stored in HEX, in this case FF = -- (no result)


For the Names this one uses standard ASCII Codes, only alpha characters, no special.

The characters
41: A
42: B
43: C
44: D
45: E
46: F
47: G
48: H
49: I
4A: J
4B: K
4C: L
4D: M
4E: N
4F: O
50: P
51: Q
52: R
53: S
54: T
55: U
56: V
57: W
58: X
59: Y
5A: Z

Cheers,
Wob
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Fyrecrypts on May 17, 2009, 11:53:00 pm
These are great, thank you very much for the help! I'll make some time this week to update HiToText with the games you've deciphered.
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 17, 2009, 11:59:51 pm
Next is Mat Mania (marmania) also know as Exciting Hour (excthour)

Quote
We have 5 high scores in the Table

Notes;
Maximum valid score is (99 99 99) = 9,999,990

- Bytes 00-02 (12 34 56): Is the highest score (#1), Stored in reverse order and a trailing 0 is added. In this case, 5,634,120 points.
- Byte  03 (12): Round, in this case 12
- Bytes 04-07 (00 00 00 00): These appear just to be padding, they start off with 00's and change to B0's for lines when a score is acutally set.  Changing them has no effect to the scores table.
- Bytes 08-15 (BB BC D4 B0 B1 B2 BA D5): Is the name of the highest score (8 characters) (In this case "ABZ 019©")

- Bytes 16-18 (00 25 00): Is the next score (#2). In this case, 25,000 points.
- Byte  19 (05): Round, in this case 05
- Bytes 20-23 (00 00 00 00): Padding?
- Bytes 24-31 (C6 CA CD B0 B0 B0 B0 B0): Is the name of the next score (8 characters) (In this case "LPS     ")

...

- Bytes 64-66 (00 10 00): Is the last score (#5), In this case, 10,000 points.
- Byte  67 (02): Round, in this case 02
- Bytes 68-71 (00 00 00 00): Padding?
- Bytes 72-79 (C6 C6 CD B0 B0 B0 B0 B0): Is the name of the last score (8 characters) (In this case "LLS     ")

- Bytes 80-82 (12 34 56): Is the in game Hiscore, in this case 5,634,120 points.

Characters are not standard ASCII in this one, and a it has several non alpha characters, but with 8 Characters per name it only took me a couple to get all the characters.  I have shortend the table, just fill in the gaps with sequencial HEX count and follow the series.

The characters
B0:   (space)
B1: 0
B2: 1
...
BA: 9
BB: A
BC: B
...
D4: Z
D5: © (Copyright Logo)
D6: ?
D7: !
D8: -
D9: .
DA: ,

Cheers,
Wob

P.S. Let me know if the shortened characters table is OK.
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Fyrecrypts on May 18, 2009, 12:01:15 am
P.S. Let me know if the shortened characters table is OK.

Yes, this is perfectly fine. =)
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 18, 2009, 05:21:30 am
Ok, Last one for today.

Black Tiger (blktiger)

Quote
We have 5 high scores in the table

Notes:
Maximum valid score is (09 09 09 09 09 09 09 09) = 999,999,990 (With a value this high The score digets actually obscure the "1ST" text.  Highest ever recorded score is 2,344,150 according to wikipedia)

- Bytes 00-07 (01 02 03 04 05 06 07 08): Is the highest score (#1). Trailing 0 is added in game. In this case, 123,456,780 points
- Bytes 08-11 (41 42 43 44): Extra name Characters, These bits are normally 20 (Blank) but values set here will show up in the scoreboard, Above the normal Initials text, I set them as a test to "ABCD" (They can NOT be entered in game)
- Bytes 12-14 (45 46 47): This is the Players Initials (3 Characters), in this Case (EFG) (This is the Valid in game entered text)
- Byte  15    (48): Another peice of extra Name text, this appears after the valid 3 Characters, I also set them via the file, In this Case "H" (This can NOT be entered in game)

- Bytes 16-23 (00 00 00 00 02 00 01 05): Is the 2nd score (#2), in this case 20,150 points
- Bytes 24-27 (20 20 20 20): Blank characters as per normal
- Bytes 28-30 (6D 6C 21): Players initials (3 Characters), in this case "Heart Diamond !"
- Byte  21 (20): Blank character as per normal

...

- Bytes 64-71 (00 00 00 00 01 06 00 00): Is the 5th score (#5), in this case 16,000 points
- Bytes 72-75 (20 20 20 20): Blank characters as per normal
- Bytes 76-78 (4D 2E 48): Players initials (3 Characters), in this case "M.H"
- Byte  79 (20): Blank character as per normal

and finally the in game High Score
- Bytes 80-87 (00 00 00 00 02 08 09 05): This is the in game Hiscore. In this case 28,950 points (This would normally equal the 1st score, but I manually edited the 1st score)


For the names this one uses standard ASCII Codes except for some of the special characters.

The characters
41: A
42: B
...
5A: Z

Special Characters
20:   (blank)
21: !
22: "
24: $
26: &
2D: -
2E: . (period)
3F: ?
5C: (Star)
6D: (Heart)
6C: (Diamond)
6A: '

The forum has stopped allowing me to attach file so here are some links for the images on this one, I have included two;

One to show you how the extra characters appear.
(http://i40.tinypic.com/2m4rfaq.png)

and one to show you all the special characters, this is the screen where you enter your name.  The RB (Rub) and ED (End) are not characters :)
(http://i44.tinypic.com/2yua64n.png)

Cheers,
Wob
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 18, 2009, 11:49:05 pm
OK, I have done Robocop (robocop)

I noticed something in the in the hiscore.dat file it lists the clones separate despite the same memory addresses being read.  See the details cut from the file.  it is also reading address ffb523 twice on the original and the clones, robocopb reads it in 3 parts for no real reason.

So I suggest some changes to the hiscore.dat file, merge all the robocop clones with the master and modify the lines as below.

Original hiscore.dat
Quote
;Robocop clones
robocopw:
robocopj:
robocopu:
robocpu0:
0:ff8ed8:a0:4d:00
0:ffb522:4:00:00
0:ffb523:1:05:05

robocop:
0:ff8ed8:a0:4d:00
0:ffb522:4:00:00
0:ffb523:1:05:05

robocopb:
0:ff8ed8:a0:4d:00
0:ffb522:1:00:00
0:ffb523:1:05:05
0:ffb524:2:00:00

Suggested Changes to hiscore.dat
Quote
;*******dec0.c (robocop (world revision 4) & clones)
robocop:
robocopb:
robocopw:
robocopj:
robocopu:
robocpu0:
0:ff8ed8:a0:4d:00
0:ffb522:4:00:00

So Here is the decoding for robocop

Quote
We have 10 high scores in the Table

Notes;
Maximum Valid Hiscore is (99 99 99 99) = 99,999,999
Maximum Valid Round is (99) = 99
Maximum Valid Time is (99 99) = 99:99

- Bytes 00-07 (4D 55 52 50 48 59 20 20): Is the name of the highest score (#1) (8 characters) (In this case "MURPHY  ")
- Bytes 08-11 (00 05 00 00): Is the highest score (#1), In this case, 50,000 points.
- Byte  12 (00): Padding (Seems to have no effect on the score board)
- Byte  13 (04): The Round. In this case 04
- Bytes 14-15 (00 00): Is the Time. In this Case 00:00. Simply Read, no tricky conversions (Eg (12 34) = 12:34)

...

- Bytes 128-135 (57 4F 42 00 00 00 00 00): Is the name of the 9th score (#9) (8 characters) (In this case "WOB     ")
- Bytes 136-139 (00 03 04 00): Is the 9th score (#9), In this case, 30,400 points.
- Byte  140 (00): Padding
- Byte  141 (02): The Round. In this case 02
- Bytes 142-143 (02 37): Is the Time. In this Case 02:37

- Bytes 144-151 (4F 2E 43 2E 50 2E 20 20): Is the name of the 10th score (#10) (8 characters) (In this case "O.C.P.  ")
- Bytes 151-155 (00 03 00 00): Is the 10th score (#10), In this case, 30,000 points.
- Byte  156 (00): Padding
- Byte  157 (01): The Round. In this case 01
- Bytes 158-159 (00 00): Is the Time. In this Case 00:00

- Bytes 160-163 (00 05 00 00): Is the in game Hiscore, in this case 50,000 points.

Good old ASCII for all the Characters, including Special Characters

Space is the only special character you can select, despite the fact there are two others in the default score table, I have included them under "Non usable Special Characters" as they will still need to be read for the default scores

The characters
30: 0
31: 1
...
39: 9

41: A
42: B
...
5A: Z

Special Characters
20:   (space)

Non usable Special Characters
2D: - (dash)
2E: . (period)

Regards,
Beau
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 18, 2009, 11:54:11 pm
I am also working on Rastan (rastan) but there appears to be issues with the hiscore.dat and how it reads the in game hi score, decoded it is only reading 4 digits when there should be 6.  I am going to compile a debugger version of mame and look at where it is going wrong, I have everything else decoded, the hiscore table and the encryption on the in game hi score.

Cheers,
Wob
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 19, 2009, 02:31:31 am
Ok I have worked out Rastan (rastan) and it's clones. Quite a mission, but I learnt some things :)

First this one needs some changes to the hiscore.dat

Current hiscore.dat
Code: [Select]
;********rastan.c
rastan:
rastanu:
rastanu2:
rastsaga:
0:10c140:26:31:4e
0:d000b4:2:00:2b
0:d000bc:2:00:2d
0:d000c4:2:00:31
0:d000cc:2:00:2c
0:d000d4:2:00:2a
0:d000bc:2:00:2d

New hiscore.dat
Code: [Select]
;********rastan.c
rastan:
rastanu:
rastanu2:
rastsaga:
0:10c140:26:31:4e
0:d000b2:1:00:00
0:d000b5:1:2b:2b
0:d000ba:1:00:00
0:d000bd:1:2d:2d
0:d000c2:1:00:00
0:d000c5:1:31:31
0:d000ca:1:00:00
0:d000cd:1:2c:2c
0:d000d2:1:01:01
0:d000d5:1:2a:2a
0:d000da:1:01:01
0:d000dd:1:2a:2a

the first problem was a typo in the last memory address, it read d000bc instead of d000dc. and it's related value.
These are the bytes for storing the value but there is a value stored two bytes earlier that are toggles for displaying those values.

It also reads two bytes when only 1 is needed, I have changed it to be consistent, it now reads the toggle byte followed by the value byte.

Here is the decoded hi file (to match my changes)

Quote
We have 5 high scores in the game

Notes:
Maximum Score = 99,999,900
Maximum Round = 9
Name Characters = 3

- Bytes 00-03 (31 27 00): This appears to be a mirror of the #1 Score, but changing it has no effect on the scoreboard or the ingame Hi Score. I guess it awlays be the same as #1 Score.

- Bytes 03-05 (31 27 00): Is the highest (#1) score. Stored in Reverse Byte Order, two trailing 0's are added in game. In this case, 273,100 points
- Bytes 06-08 (72 25 00): Is the 2nd (#2) score. In this case, 257,200 points
- Bytes 09-11 (78 19 00): Is the 3rd (#3) score. In this case, 197,800 points
- Bytes 12-14 (54 12 00): Is the 4th (#4) score. In this case, 125,400 points
- Bytes 15-17 (20 11 00): Is the last (#5) score. In this case, 112,000 points

- Byte  18 (03): Is the highest (#1) round. In this case 3
- Byte  19 (03): Is the 2nd (#2) round. In this case 3
- Byte  20 (03): Is the 3rd (#3) round. In this case 3
- Byte  21 (02): Is the 4th (#4) round. In this case 2
- Byte  22 (02): Is the last (#5) round. In this case 2

- Bytes 23-25 (43 4F 42): Is the highest (#1) name. In this case "COB"
- Bytes 26-28 (54 48 53): Is the 2nd (#2) name. In this case "THS"
- Bytes 29-31 (59 41 47): Is the 3rd (#3) name. In this case "YAG"
- Bytes 32-34 (54 4B 47): Is the 4th (#4) name. In this case "TKG"
- Bytes 35-37 (59 54 4E): Is the last (#5) name. In this case "YTN"

- Bytes 38-49 (00 2B 00 2D 00 31 00 2C 01 2A 01 2A): In Game Hi Score. In this Case 273,100. two trailing 0's are added in game. The Values are Encrypted (Table Below)

I will split this up to address the bytes.
   -Byte 38 (00): The toggle for the next byte 00=Show 01=Hide
   -Byte 39 (2B): The Last Digit before the trailing 0's. In this Case 1
   -Byte 40 (00): The toggle for the next byte 00=Show 01=Hide
   -Byte 41 (2D): The Next Digit to the left,  In this Case 3
   -Byte 42 (00): The toggle for the next byte 00=Show 01=Hide
   -Byte 43 (31): The Next Digit to the left,  In this Case 7
   -Byte 44 (00): The toggle for the next byte 00=Show 01=Hide
   -Byte 45 (2C): The Next Digit to the left,  In this Case 2
   -Byte 46 (01): The toggle for the next byte 00=Show 01=Hide
   -Byte 47 (2A): The Next Digit to the left,  In this Case 0
   -Byte 48 (01): The toggle for the next byte 00=Show 01=Hide
   -Byte 47 (2A): The Next Digit to the left,  In this Case 0

So the Maxumum Value would be (00 33 00 33 00 33 00 33 00 33 00 33) = 99,999,900 (Note the togles for the top two digits has to be changed)

Code: [Select]
Encrypted In Game Hi Score Characters:
2A: 0
2B: 1
2C: 2
2D: 3
2E: 4
2F: 5
30: 6
31: 7
32: 8
33: 9

Good old ASCII for all the Characters, including the special characters.

Code: [Select]
The characters
41: A
42: B
...
5A: Z

Special Characters
20:   (blank)
21: !
28: (
29: )
2D: -
2E: . (period)
3F: ?

Cheers,
Wob
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Cananas on May 19, 2009, 09:10:07 am
I am also working on Rastan (rastan) but there appears to be issues with the hiscore.dat and how it reads the in game hi score, decoded it is only reading 4 digits when there should be 6.  I am going to compile a debugger version of mame and look at where it is going wrong, I have everything else decoded, the hiscore table and the encryption on the in game hi score.

Cheers,
Wob

Don't know what mame version you are using. The lastest regular versions have the debugger included. Just use -debug.

BTW welcome, and great work.
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Visitor Q on May 19, 2009, 05:48:09 pm
Nevermind...  ;D
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 19, 2009, 06:47:54 pm

Don't know what mame version you are using. The lastest regular versions have the debugger included. Just use -debug.

BTW welcome, and great work.

Thanks, That I did not know.  I just recompiled a version with debug enabled.  I am using 0.131.

Cheers,
Wob
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 20, 2009, 02:23:13 am
Here is Pacland (pacland)

Needs a small fix in the hiscore.dat, it only grabs 3 of the 4 bytes to the in game high score, missing the last byte. The only change is changing the length on the last line from 3 to 4.

Old hiscore.dat
Quote
;********pacland.c
pacland:
pacland2:
pacland3:
paclandm:
0:2140:4a:00:e6
0:205d:3:00:00

New hiscore.dat
Quote
;********pacland.c
pacland:
pacland2:
pacland3:
paclandm:
0:2140:4a:00:e6
0:205d:4:00:00

And the deciphering after the changes to hiscore.dat
Quote
We have 5 high scores in the Table

Notes;
Maximum Valid Hiscore is (99 99 99 99) = 99,999,999
Maximum Round Value is (99) = 99

- Bytes 00-03 (00 08 00 00): Is the highest score (#1) In this case = 80,000 points.
- Byte  04 (00): Round, in this case 0
- Bytes 05-09 (E4 E5 E5 E5 E5): Is the name of the highest score (#1) (5 characters) (In this case Pacman + 4 x Ghost)
- Bytes 10-15 (00 00 00 00 00 00): Padding

- Bytes 16-19 (00 03 00 00): Is the next score (#2). In this case = 30,000 points.
- Byte  20 (00): Round, in this case 00
- Bytes 21-25 (E4 E5 E5 E5 E6): Is the name of the next score (#2) (5 characters) (In this case Pacman + 3 x Ghost + Space)
- Bytes 26-31 (00 00 00 00 00 00): Padding

...

- Bytes 64-67 (00 03 00 00): Is the last score (#2). In this case = 30,000 points.
- Byte  68 (00): Round, in this case 00
- Bytes 69-73 (E4 E6 E6 E6 E6): Is the name of the last score (#5) (5 characters) (In this case Pacman + 4 x Space)
Note: There is no padding grabbed for the last score

And Finally the In Game High Score
- Bytes 74-77 (00 80 00 00): In this case = 80,000 points.


Characters are not standard ASCII in this one.

The characters
CA: A
CB: B
...
E3: Z
Special characters
E4: (Pacman)
E5: (Ghost)
E6: (space)
E7: . (Period)

Cheers,
Wob
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 25, 2009, 01:22:03 am
Here is "The Speed Rumbler" (srumbler) and clones

This is a little on the strange side, the names and scores are stored in the table but not in order, then there are bytes referring to the names\scores and order.

To simplify the decoding of the references tables and to optimise the lines needed I firstly suggest a change to the hiscore.dat file.

Old Entry
Code: [Select]
;********srumbler.c
srumbler:
srumblr2:
rushcrsh:
0:1c94:62:54:00
0:aa:4:00:00
0:1cf6:e:1c:f2

New Entry
Code: [Select]
;********srumbler.c
srumbler:
srumblr2:
rushcrsh:
0:1c94:70:54:f2
0:aa:4:00:00

The last line just reads more bytes after the first line, so I have extended the first line to read the bytes from the last, this will help keep everything in a nice order.

So after these changes here is the decoding of the hi file.

Quote
We have 7 high scores in the Table

Notes;
Maximum Valid high score is (99 99 99 99) = 99,999,999

First we have all the names (In no particular order);
- Bytes 00-07 (54 4F 4B 55 52 4F 55 20): Is first name space. In this Case "TOKUROU "
- Bytes 08-15 (59 55 4B 49 4F 20 20 20): Is Next name space. In this Case "YUKIO   "
- Bytes 16-23 (4B 59 4F 4B 4F 20 20 20): Is Next name space. In this Case "KYOKO   "
- Bytes 24-31 (48 41 52 55 4D 49 20 20): Is Next name space. In this Case "HARUMI  "
- Bytes 32-39 (54 41 4D 41 59 4F 20 20): Is Next name space. In this Case "TAMAYO  "
- Bytes 40-47 (4B 55 43 48 49 4E 4F 20): Is Next name space. In this Case "KUCHINO "
- Bytes 48-55 (41 42 5A 20 20 20 20 20): Is last name space. In this Case "ABZ     "

Next is the References to the Names;
They refer to the names by starting memory location, which is fine for in game, but it doesn't mean much in our hi file.  The first memory address is the first byte dumped into the hi file, so we can do some hex maths to work out the new location, (Value - 1C 94) = New Byte Reference (In Hex)
- Bytes 56-57 (1C 94): Is the Memory Location of the Top Name (#1) So (1C 94 - 1C 94) = 0 (So Byte 0 in Decimal)
- Bytes 58-59 (1C 9C): Is the Memory Location of the Next Name (#2) So (1C 9C - 1C 94) = 8 (So Byte 8 in Decimal)
- Bytes 60-61 (1C A4): Is the Memory Location of the Next Name (#3) So (1C A4 - 1C 94) = 10 (So Byte 16 in Decimal)
- Bytes 62-63 (1C AC): Is the Memory Location of the Next Name (#4) So (1C AC - 1C 94) = 18 (So Byte 24 in Decimal)
- Bytes 64-65 (1C B 4): Is the Memory Location of the Next Name (#5) So (1C B 4 - 1C 94) = 20 (So Byte 32 in Decimal)
*I had to add a space between the B and the 4 so the forum didn't change it*
- Bytes 66-67 (1C C4): Is the Memory Location of the Next Name (#6) So (1C C4 - 1C 94) = 30 (So Byte 48 in Decimal)
- Bytes 68-69 (1C BC): Is the Memory Location of the Last Name (#7) So (1C BC - 1C 94) = 28 (So Byte 40 In Decimal)

Next we have the Scores (In no particular order);
- Bytes 70-73 (00 03 50 00): Is first score space. In this Case "35,000"
- Bytes 74-77 (00 03 00 00): Is Next score space. In this Case "30,000"
- Bytes 78-81 (00 02 50 00): Is Next score space. In this Case "25,000"
- Bytes 82-85 (00 02 00 00): Is Next score space. In this Case "20,000"
- Bytes 86-89 (00 01 50 00): Is Next score space. In this Case "15,000"
- Bytes 90-93 (00 01 00 00): Is Next score space. In this Case "10,000"
- Bytes 94-97 (00 01 16 00): Is last score space. In this Case "11,600"

Next is the References to the Scores;
This works the same as the names, we can use the same maths.
- Bytes 98-99 (1C DA): Is the Memory Location of the Top Score (#1) So (1C DA - 1C 94) = 46 (So Byte 70 in Decimal)
- Bytes 100-101 (1C DE): Is the Memory Location of the Next Score (#2) So (1C DE - 1C 94) = 4A (So Byte 74 in Decimal)
- Bytes 102-103 (1C E2): Is the Memory Location of the Next Score (#3) So (1C E2 - 1C 94) = 4E (So Byte 78 in Decimal)
- Bytes 104-105 (1C E6): Is the Memory Location of the Next Score (#4) So (1C E6 - 1C 94) = 52 (So Byte 82 in Decimal)
- Bytes 106-107 (1C EA): Is the Memory Location of the Next Score (#5) So (1C EA - 1C 94) = 56 (So Byte 86 in Decimal)
- Bytes 108-109 (1C F2): Is the Memory Location of the Next Score (#6) So (1C F2 - 1C 94) = 5E (So Byte 94 in Decimal)
- Bytes 110-111 (1C EE): Is the Memory Location of the Last Score (#7) So (1C EE - 1C 94) = 5A (So Byte 90 In Decimal)

Last we have the in game Hi Score;
- Bytes 112-115 (00 03 50 00): Is the in game hi score. In this case "35,000"


Characters are standard ASCII in this one except for some strange special characters;

Code: [Select]
The characters
31: 1
32: 2
...
39: 9

41: A
42: B
...
5A: Z

Special Characters (Refer to the Screenshot for some as I don't know what to call them)
20: (space)
3A: (2nd Row, 3rd Symbol)
3B: (2nd Row, 4th Symbol)
3C: (2nd Row, 5th Symbol)
3D: =
3E: (2nd Row, 7th Symbol)
3F: ?
5B: . (Period)
5C: -
5D: (6th Row, 5th Symbol)

Screenshot of the result of the information above (the ABZ is the only non default entry)
(http://i43.tinypic.com/rqydy0.png)

Screenshot of the name entry screen showing strange special characters
(http://i40.tinypic.com/o09mb4.png)

Cheers,
Wob
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Fyrecrypts on May 25, 2009, 01:27:41 am
Here is "The Speed Rumbler" (srumbler) and clones

As I was reading, I was looking how it looked an awful like Ghosts N' Goblins. Not surprisingly, both games are mid 80's Capcom. Thankfully, because of that, this should take minutes instead of hours. =)
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 25, 2009, 01:39:19 am
As I was reading, I was looking how it looked an awful like Ghosts N' Goblins. Not surprisingly, both games are mid 80's Capcom. Thankfully, because of that, this should take minutes instead of hours. =)

Good stuff, so does ghosts n' goblins use the same system? seems likes a strange way to do it, why not just have the table in order? I am sure it made sense to someone at the time :)

The changes to the hi and not a must, but it makes more sense to have the score reference before the ingame score that after, plus it optimises the number of lines :)
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Fyrecrypts on May 25, 2009, 10:26:13 am
As I was reading, I was looking how it looked an awful like Ghosts N' Goblins. Not surprisingly, both games are mid 80's Capcom. Thankfully, because of that, this should take minutes instead of hours. =)

Good stuff, so does ghosts n' goblins use the same system? seems likes a strange way to do it, why not just have the table in order? I am sure it made sense to someone at the time :)

The changes to the hi and not a must, but it makes more sense to have the score reference before the ingame score that after, plus it optimises the number of lines :)

Yeah, Ghosts N' Goblins looks exactly the same, it is strange, and seems like a waste of space really. I guess you don't have to move a ton of scores around when you get a new score though. You only write over the lowest score, and just modify the pointers.

We'll definitely change the hiscore.dat, anything that makes it cleaner is an upgrade, this most certainly is an upgrade.
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Fyrecrypts on May 27, 2009, 11:55:35 pm
I should have a release out by Friday, I have translated much of Wob's work into code, and Cananas has given me Punch Out, Super Punch Out, Kamikaze Cabbie, and some updates to Violent Fight.

I think it should be a pretty good update. =D
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 28, 2009, 02:55:23 am
Next one is Vigilante

First off we can add the clones to the hiscore.dat file, it only has the original listed and the clones work the same.

hiscore.dat after adding two clones.
Quote
vigilant:
vigilntj:
vigilntu:
0:e048:3f:00:48

This was a nice and easy one.
Quote
We have 10 high scores in the game

Notes:
Maximum Valid Highscore Value is 999990 = (90 99 99), The last digit will always show as a 0 ingame regardless of what the value is.

- Bytes 00-02 (00 45 11): This is the in game high score, stored in reverse byte order, in this case 114,500

- Bytes 03-05 (00 45 11): Is the Top (#1) score. In this case, 114,500 points (Stored in reverse Byte Order)
- Bytes 06-08 (41 45 4B): Is the Initials of the Top (#1) score (3 characters), In this case AEK

- Bytes 09-11 (00 87 09): Is the next (#2) score. In this case, 98,700 points (Stored in reverse Byte Order)
- Bytes 12-14 (4D 2E 4B): Is the Initials of the next (#2) score (3 characters), In this case M.K

and so on until

- Bytes 57-59 (00 65 01): Is the last (#10) score. In this case, 16,500 points (Stored in reverse Byte Order)
- Bytes 60-62 (45 2E 48): Is the Initials of the last (#10) score (3 characters), In this case E.H

This one uses ASCII for the character set except for a One Special characters

The characters
41: A
...
5A: Z

20: (blank)
21: !
26: &
2D: - (dash)
2E: . (period)

Special Character
1B: (Heart)

Cheers,
Wob
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Fyrecrypts on May 28, 2009, 08:02:50 pm
Okay, new release will happen tomorrow morning, I may add some more things if I can find the time (may be hard), or if someone else has more they'd like me to put in before it goes out tomorrow.

It will contain all of Wob's deciphered games in this thread, and the files mentioned above from Cananas. Around 15 new games + their clones.
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 28, 2009, 08:30:55 pm
I can hardly wait :)

I just want to take the opportunity to thank Fyrecrypts and all the other people working behind the scenes on HiToText and the next big thing.  All your hard work is appreciated.

I would also like to encourage everyone using the tool to take a look at decoding some hi files, it's not as hard as it looks and the more you do the easier they get, just start with your favourites that are not done yet and go from there, as they say many hand make light work :)

Cheers,
Wob
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 28, 2009, 09:36:12 pm
Ok, slow morning so here is Yie Ar Kung-Fu (yiear and yiear2)

Quote
We have 10 high scores in the game

Notes:
Maximum valid high score value is 9999990 = (99 99 99), tailing 0 is added in game.

- Bytes 00-02 (00 38 40): Is the Top (1st) score. In this case, 38,400 points, tailing 0 is added in game.
- Byte  03    (03): Is the Stage for the Top (1st) score.  In this case 3
- Bytes 04-13 (23 2B 24 23 25 14 11 10 10 10): Is the name of the Top (1st) score (10 characters), In this case S.TSUDA

- Bytes 14-16 (00 31 50): Is the next (2nd) score. In this case, 31,500 points
- Byte  17    (02): Is the Stage for the next (2nd) score.  In this case 2
- Bytes 18-27 (29 2B 23 25 17 19 1D 1F 24 1F): Is the name of the next (2nd) score (10 characters), In this case Y.SUGIMOTO

and so on until

- Bytes 126-128 (00 04 80): Is the last (10th) score. In this case, 4,800 points
- Byte  129     (01): Is the Stage for the last (10th) score.  In this case 1
- Bytes 130-139 (18 11 24 11 1E 1F 10 10 10 10): Is the name of the last (10th) score (10 characters), In this case HATANO

and finally we have

- Bytes 140-142 (00 38 40): This is the in game high score.  In this case 38,400

This one is NON ASCII for the characters

The characters
10: (blank)
11: A
12: B
...
2A: Z
2B: . (period)
2C: =
2D: !
2E: (square)

Here is a screenshot to show the special Characters, mainly the square as it's an odd one.
(http://i39.tinypic.com/5uqscm.png)

Cheers,
Wob
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 28, 2009, 10:42:14 pm
I'm picking some easy ones today, Here is Vendetta and clones (vendetta, vendett2, vendettj, vendtaso, vendetao, vendet2p, vendetas)

No hiscore.dat changes needed.

Quote
We have 8 high scores in the game

Notes:
Maximum Valid Highscore Value is 9999 = (99 99)
No in game hi score for this game.

- Bytes 00-01 (00 50): Is the Top (#1) score. In this case 50
- Bytes 02-04 (41 41 41): Is the Initials of the Top (#1) score (3 characters), In this case AAA

- Bytes 05-06 (00 48): Is the next (#2) score. In this case 48
- Bytes 07-09 (42 42 42): Is the Initials of the next (#2) score (3 characters), In this case BBB

and so on until

- Bytes 35-36 (00 18): Is the last (#8) score. In this case 18
- Bytes 60-62 (48 48 48): Is the Initials of the last (#8) score (3 characters), In this case HHH

This one uses ASCII for the character set except for the two special characters

The characters
41: A
42: B
...
5A: Z

Special Character
40: (blank)
5B: . (period)

Cheers,
Wob
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: headkaze on May 28, 2009, 11:06:45 pm
Nice work Wob, appreciate your contributions and good to see this project still going strong  :cheers:
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Wob on May 29, 2009, 02:25:44 am
Ok, brianoneill requested me to look at this one.

It's Twin Cobra (twincobr, twincobu,) it also works with (ktiger, fshark, fsharkbt, skyshark) the only difference being the latter ones use 6 characters for names when Twin Cobra only uses 3.

Quote
We have 20 high scores in the game

Notes:
Maximum valid Score value = (09 99 99 99) 99,999,990
Name Characters = 3 (for twincobr, twincobu)
Name Characters = 6 (for ktiger, fshark, fsharkbt, skyshark)

Scores
- Bytes 000-003 (00 00 36 29): This appears to be a mirror of the #1 Score, just like rastan. Should always be the same as #1

- Bytes 004-007 (00 00 36 29): Is the highest (1st) score. Trailing 0 is added in game. In this case, 36,290 points

- Bytes 008-011 (00 00 30 00): Is the next (2nd) score. In this case, 30,000 points
...
- Bytes 080-083 (00 00 12 00): Is the last (20th) score. In this case, 12,000 points

Names (Twincobr and twincobu use only the first 3 digits, the last three digits change from ("---") to ("   ") after a name is input)
- Bytes 084-095 (00 0A 00 0B 00 23 00 2D 00 2D 00 2D): Is the highest (1st) name. 00 Bytes are just padding. In this Case (ABZ   )

- Bytes 096-105 (00 28 00 28 00 28 00 28 00 28 00 28): Is the next (2nd) name. In this Case (------)
...
- Bytes 312-317 (00 28 00 28 00 28 00 28 00 28 00 28): Is the last (20th) name. In this Case (------)


Areas Note: I'm not sure on the maximum valid value, but it does read both bytes. (01 01) = 257 and (FF FF) = 535 (at least in twincobr)

- Bytes 324-325 (00 0E): The Area for the highest (1st) score in Hex, In this Case 14

- Bytes 326-327 (00 0A): The Area for the next (2st) score in Hex, In this Case 10
...
- Bytes 328-329 (00 01): The Area for the last (20th) score in Hex, In this Case 1

And finally we have the in game high score.
- Bytes 364-371 (2D 2D 2D 03 06 02 09 00): One byte per digit, In this case 36,290 points. No tailing 0 here, the leading digits are blanks as per the character table (2D)

This one is NON ASCII for the characters

The characters
0A: A
0B: B
...
23: Z

Special Characters
24: !
25: ,
26: .
27: +
28: -
29: &
2A: ?
2D:   (blank)

Picture of the table from twincobr
(http://i42.tinypic.com/28benhs.png)

Cheers,
Wob
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Fyrecrypts on May 29, 2009, 11:51:30 am
All right! New HiToText:

HiToText w/Source: http://the-elitists.com/HiToText/HiToText_2009.05.29.zip
HiToText.exe: http://the-elitists.com/HiToText/HiToText.exe
New hiscore.dat: http://the-elitists.com/HiToText/hiscore.dat_2009.05.29.zip

New games and clones in this release: Kung Fu Master, Circus Charlie, Double Dragon, Pacland, Mat Mania, Bank Panic, PunchOut, Super PunchOut, Kamikaze Cabbie, Rastan, Robocop, Black Tiger, World Rally, Vigilante, The Speed Rumbler, Wonderboy, Yie-Ar Kungfu, Vendetta, and Twin Cobra!

Big thanks to Cananas and Wob for deciphering these games!

Also, per a suggestion from Wob, I will be putting up an online spreadsheet shortly that contains the games in HiToText, and sections for people to put up suggestions, or to show what games are being worked on (to avoid duplication of work).
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: FrizzleFried on May 29, 2009, 12:33:08 pm
All right! New HiToText:

HiToText w/Source: http://the-elitists.com/HiToText/HiToText_2009.05.29.zip
HiToText.exe: http://the-elitists.com/HiToText/HiToText.exe
New hiscore.dat: http://the-elitists.com/HiToText/hiscore.dat_2009.05.29.zip

New games and clones in this release: Kung Fu Master, Circus Charlie, Double Dragon, Pacland, Mat Mania, Bank Panic, PunchOut, Super PunchOut, Kamikaze Cabbie, Rastan, Robocop, Black Tiger, World Rally, Vigilante, The Speed Rumbler, Wonderboy, Yie-Ar Kungfu, Vendetta, and Twin Cobra!

Big thanks to Cananas and Wob for deciphering these games!

Also, per a suggestion from Wob, I will be putting up an online spreadsheet shortly that contains the games in HiToText, and sections for people to put up suggestions, or to show what games are being worked on (to avoid duplication of work).

Is it strange this file has an exact same byte count as the highscore.dat from early March?
Title: Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
Post by: Fyrecrypts on May 29, 2009, 12:55:50 pm
All right! New HiToText:

HiToText w/Source: http://the-elitists.com/HiToText/HiToText_2009.05.29.zip
HiToText.exe: http://the-elitists.com/HiToText/HiToText.exe
New hiscore.dat: http://the-elitists.com/HiToText/hiscore.dat_2009.05.29.zip

New games and clones in this release: Kung Fu Master, Circus Charlie, Double Dragon, Pacland, Mat Mania, Bank Panic, PunchOut, Super PunchOut, Kamikaze Cabbie, Rastan, Robocop, Black Tiger, World Rally, Vigilante, The Speed Rumbler, Wonderboy, Yie-Ar Kungfu, Vendetta, and Twin Cobra!

Big thanks to Cananas and Wob for deciphering these games!

Also, per a suggestion from Wob, I will be putting up an online spreadsheet shortly that contains the games in HiToText, and sections for people to put up suggestions, or to show what games are being worked on (to avoid duplication of work).

Is it strange this file has an exact same byte count as the highscore.dat from early March?

It is strange, but I just downloaded it, and it's definitely the updated hiscore.dat.

Very weird coincidence.
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Wob on May 29, 2009, 07:08:48 pm
Just a note to everyone, if you have a .hi file for any of the games that needed changes to the hiscore.dat file you will need to delete them or you may end up with a corrupt high score table.

Cheers,
Wob
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Wob on May 31, 2009, 09:37:32 pm
Ok my next one is Popeye (popeye, popeyeu, popeyef, popeyebl)

No changes needed to the hiscore.dat

This is one that doesn't store the values in order, it starts with cell references that designate the order.

Quote
We have 5 high scores in the game

Notes:
Maximum Valid Highscore Value is 999,999

- Byte 00 (00): Last Score position modified (01 - 05) starts as 00.

This is a reference to the start of the bytes containing the each score, for our reference it is the hex value - 5.  They start in order but change as the scores are added, the lowest score is overwritten and the references are changed.
- Byte 01 (0B): Location for top (#1) score (0B - 05) = 06 (Byte 06)
- Byte 02 (11): Location for 2nd (#2) score (11 - 05) = 0C (Byte 12)
- Byte 03 (17): Location for 3rd (#3) score (17 - 05) = 12 (Byte 18)
- Byte 04 (1D): Location for 4th (#4) score (1D - 05) = 18 (Byte 24)
- Byte 05 (23): Location for last (#5) score (23 - 05) = 1E (Byte 30

The Storage Slots, in no particular order
- Bytes 06-08 (10 0E 1D): Is slot #1 for name (3 characters), In this case GET
- Bytes 09-11 (00 26 03): Is slot #1 for score. In this case, 032,600 points (Stored in reverse Byte order)

- Bytes 12-14 (1D 13 12): Is slot #2 for name (3 characters), In this case TJI
- Bytes 15-17 (00 97 02): Is slot #2 for score. In this case, 029,700 points (Stored in reverse Byte order)

...

- Bytes 30-32 (22 18 14): Is slot #5 for name (3 characters), In this case YOK
- Bytes 33-35 (50 11 02): Is slot #5 for score. In this case, 021,150 points (Stored in reverse Byte order)

And finally the in game high score
- Bytes 36-38 (00 26 03): Is the in game high score, in this case 032,600 (Stored in reverse Byte order) Changes don't seem to have an effect in game.
- Bytes 39-44 (00 03 02 06 00 00): Is the in game high score, one byte per digit, in this case 032,600 (Changes to this one do have an effect in game)

This one is NON ASCII for the characters

The characters
0A: A
0B: B
...
23: Z
24: / (slash)
25: , (comma)
26: . (period)
27: * (Astrix)
28:   (square)
29:   (space)

Here is a pic of the special characters.
(http://i39.tinypic.com/n2jymd.png)

Cheers,
Wob
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Fyrecrypts on June 02, 2009, 02:51:06 pm
I've updated the hiscore.dat with the latest updates from Leezer.
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: FrizzleFried on June 03, 2009, 05:39:18 pm
Request for those in the know:

PuzzLoop and PuzzLoop 2.  Both are excellent puzzle games and both don't save HS right now.

BTW: Did I mention you guys kickass?

Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Wob on June 04, 2009, 11:24:01 pm
Today I have Silk Worm (silkworm, silkwrm2)

Some fixes to the hiscore.dat to remove some unneeded bytes.

hiscore.dat
Quote
silkworm:
silkwrm2:
0:d262:64:00:10
0:c848:8:20:30
0:c858:8:20:30
0:d54f:3:00:00
0:d573:3:00:00

And after the changes the deciphering goes like this
Quote
In this one we have 2 Tables both with 5 high scores.
The scores are stored in a single table then split in game.
The first 5 entries make up the Table for the Heli
The last 5 entires make up the Table for the Jeep

Notes;
Maximum Valid Hiscore is (99 99 99) = 99,999,900 (Two tailing 0's are added in game)
Maximum Valid Round is (63) = 99 (Stored in Hex)
Name = 3 Characters

- Byte  00    (00): Is the position in the table
- Bytes 01-03 (98 03 00): Is the highest Heli score (1st), Stored in reverse byte order. In this case, 39,800 points.
- Bytes 04-06 (41 42 5A): Is the initials of the highest Heli score (1st), In this case "ABZ"
- Byte  07    (02): The Round. In this case 02 (Stored in Hex)
- Bytes 08-09 (01 35): Is the Time. In this Case 01:53. one byte each side of the : (Stored in Hex)

...

- Byte  40    (04): Is the position in the table
- Bytes 41-43 (00 03 00): Is the last Heli score (5th), Stored in reverse byte order. In this case, 30,000 points.
- Bytes 44-46 (4D 2E 54): Is the initials of the last Heli score (5th), In this case "M.T"
- Byte  47    (01): The Round. In this case 01 (Stored in Hex)
- Bytes 48-49 (00 10): Is the Time. In this Case 00:16. (Stored in Hex)

- Byte  50    (05): Is the position in the table
- Bytes 51-53 (00 03 00): Is the highest Jeep score (1st), Stored in reverse byte order. In this case, 30,000 points.
- Bytes 54-56 (54 2E 4D): Is the initials of the highest Jeep score (1st), In this case "T.M"
- Byte  57    (01): The Round. In this case 01 (Stored in Hex)
- Bytes 58-59 (00 10): Is the Time. In this Case 00:16. (Stored in Hex)

...

- Byte  90    (09): Is the position in the table
- Bytes 91-93 (00 03 00): Is the last Jeep score (5th), Stored in reverse byte order. In this case, 30,000 points.
- Bytes 94-96 (4F 2E 48): Is the initials of the last Jeep score (5th), In this case "O.H"
- Byte  97    (01): The Round. In this case 01 (Stored in Hex)
- Bytes 98-99 (00 10): Is the Time. In this Case 00:16. (Stored in Hex)

Here we have the in game high score stored in ASCII, with one digit per byte (No trailing 0's added here), Changes here are shown directly on screen.
- Bytes 100-107 (20 20 20 33 30 30 30 30): Is the in game high score for the Jeep, In this Case "   30000"
- Bytes 108-115 (20 20 20 33 39 38 30 30): Is the in game high score for the Heli, In this Case "   39800"

Numbers (for the in game high score)
30: 0
31: 1
...
39: 9

Last he have the in game high scores again, this time stored the same as the score table.
- Bytes 116-118 (98 03 00): Is the in game high score for the Heli, Stored in reverse byte order. In this case, 39,800 points.
- Bytes 119-121 (00 03 00): Is the in game high score for the Jeep, Stored in reverse byte order. In this case, 30,000 points.


Good old ASCII for all the Characters, only special character is a period.

The characters
41: A
42: B
...
5A: Z
2E: . (period)

(http://i44.tinypic.com/25z6xqb.png)

Cheers,
Wob
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Wob on June 08, 2009, 07:30:05 pm
I can't believe I didn't think of this one earlier, here is Rygar (rygar, rygar2, rygarj, rygar3)

This one needed some fixing up in the hiscore.dat file, it stopped just two bytes into the last entry in the table (#51) so I extended the first grab.  It also had 3 lines where only 1 was needed.

Changes to the hiscore.dat
Quote
rygar:
rygar2:
rygarj:
rygar3:
0:c983:1cb:41:02
0:c023:4:00:00
0:d06c:8:01:60

Deciphering after changes
Quote
We have 50 high scores shown in the game but we have 51 high scores stored in memory

Notes:
Maximum Valid Highscore Value is 99,999,999 = (99 99 99 99)
Maximum Name = 3 Characters
Rank is shown in game using badges, the value 1D (29) shows as "BEST".  I have found reference that the ranking system continues above this but in the score table it will start to cycle back to the first badge again.  The default value for the rank is 41 (65) ,See http://www.arcade-history.com/?n=rygar-legend-warrior&page=detail&id=2280 for info on the ranking if needed.

- Byte  00       (02): Is the Rank of the top (#1) score. Stored in Hex. In this case 2
- Bytes 01-04 (00 04 08 60): Is the top (#1) Score. In this case, 40,860 points
- Bytes 05-07 (57 4F 42): Is the Name of the top (#1) score, In this case WOB
- Byte  08       (02): Is the Round of the top (#1) score. Stored in Hex. In this case 2

- Byte  09       (01): Is the Rank of the next (#2) score. Stored in Hex. In this case 1
- Bytes 10-13 (00 03 95 90): Is the next (#2) Score. In this case, 39,590 points
- Bytes 14-16 (5B 5C 41): Is the Name of the next (#2) score, In this case ".(shield)A"
- Byte  17       (02): Is the Round of the next (#2) score. Stored in Hex. In this case 2

...

- Byte  450         (41): Is the Rank of the last (#51) score. Stored in Hex. In this case 65
- Bytes 451-454 (00 03 00 00): Is the last (#51) Score. In this case, 30,000 points
- Bytes 454-457 (41 41 41): Is the Name of the last (#51) score, In this case "AAA"
- Byte  458         (02): Is the Round of the last (#51) score. Stored in Hex. In this case 2

(The table starts with all values the same as shown in #51 record)

Finally the in game high score.

- Bytes 459-462 (60 08 04 00): Is the in game high score, stored in reverse byte order. In this case 40,860
- Bytes 463-470 (01 01 01 64 60 68 66 60): Is the in game high score, 1 digit per byte as per the table below, In this Case 40,860

Characters table for second in game high score.
01: (blank leading digit)
61: 1
62: 2
..
69: 3

This one is ASCII for the characters except the two specials

The Name characters
41: A
42: B
...
5A: Z

5B: . (period)
5C:   (sheild)

Image
(http://i43.tinypic.com/aadwd5.png)

Cheers,
Wob
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: dna disturber on June 09, 2009, 06:09:12 am
(gyruss)

byte 00 = rank1 -> value 0
byte 03,02,01 = score
byte 04,05,06 = name

byte 08 = rank2 -> value 1
byte 11,10,09 = score
byte 12,13,14 = name

byte 16 = rank3 -> value 2
byte 19,18,17 = score
byte 20,21,22 = name

byte 24 = rank4 -> value 3
byte 27,26,25 = score
byte 28,29,30 = name

byte 32 = rank5 -> value 4
byte 35,34,33 = score
byte 36,37,38 = name

byte 41,40,39 = high-score

alphabet in HEX:
34h = A
e7h = B
03h = C
c4h = D
ffh = E
25h = F
c2h = G
87h = H
88h = I
40h = J
51h = K
e8h = L
a5h = M
29h = N
b2h = O
6ah = P
c6h = Q
bfh = R
c1h = S
fch = T
c3h = U
f1h = V
b4h = W
0dh = X
b0h = Y
0bh = Z
f8h = .


name-values in initial high-score table are not from the alphabet in hex:
K.O    d7h,d3h,b1h   byte 04,05,06 = name
N.A    47h,d3h,eeh   byte 12,13,14 = name
M.I    3ah,d3h,48h   byte 20,21,22 = name
O.O    b1h,d3h,b1h   byte 28,29,30 = name
RYO    6dh,a7h,b1h   byte 36,37,38 = name



-------------
Dna Disturber
-------------
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: dna disturber on June 09, 2009, 06:55:17 am
(jungler)

bytes 02,01,00 = score
bytes 03-14 = name
values 5bh in bytes 03-14 mark the end of the name.

 
This repeats 10 times at every offset (16,32....till 160)
rank according to place (offset)

at offset 160 the 3 bytes are the highest-score 02,01,00


The alphabet is in ascii.
A-Z (no other characters available)
------------------
Dna Disturber
------------------
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: dna disturber on June 09, 2009, 07:45:48 am
(timeplt)

byte 00 = rank1 -> value 0
byte 03,02,01 = score
byte 04,05,06 = name

byte 08 = rank2 -> value 1
byte 11,10,09 = score
byte 12,13,14 = name

byte 16 = rank3 -> value 2
byte 19,18,17 = score
byte 20,21,22 = name

byte 24 = rank4 -> value 3
byte 27,26,25 = score
byte 28,29,30 = name

byte 32 = rank5 -> value 4
byte 35,34,33 = score
byte 36,37,38 = name

byte 41,40,39 = high-score

alphabet in HEX:
74h = A
b1h = B
cch = C
ech = D
5ch = E
16h = F
39h = G
50h = H
67h = I
21h = J
7ah = K
c5h = L
f7h = M
beh = N
54h = O
80h = P
2fh = Q
5fh = R
9fh = S
6dh = T
44h = U
b8h = V
e7h = W
bdh = X
89h = Y
59h = Z
1ah = .


name-values in initial high-score table are not from the alphabet in hex:
K.O    7ch,11h,68h   byte 04,05,06 = name
N.A    3bh,11h,a5h   byte 12,13,14 = name
M.I    38h,11h,fdh   byte 20,21,22 = name
O.O    68h,11h,68h   byte 28,29,30 = name
Y.A    bfh,11h,a5h   byte 36,37,38 = name



-------------
Dna Disturber
-------------
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Wob on June 09, 2009, 08:12:31 am
Nice work dna disturber,

Good to see someone else joining the deciphering ranks.

I can't believe I didn't do Time Pilot earlier, it's one of my all time favourites.

Wob
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: dna disturber on June 09, 2009, 08:32:58 am
Thanks Wob,

I'm just picking up the somewhat easy ones....
The rest I leave to the pros like you , cananas and fyrecrypts........

Although I had to play a few games to get the alphabet on gyruss and timepilot.
I didn't see any pattern there.
(thank God the default highscores weren't high).
Wanted to do roc'n rope but I really suck at the game.....couldn't even get past the initial high-score for like 10 times.... :angry: turns out you can't even write your initials  :banghead:

 
:cheers:   

Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: dna disturber on June 09, 2009, 09:54:30 am
Hmmm must find another hobby this is becoming addictive.  :P

(ladybug)

bytes 00-02 = highscore top
bytes 03-05 = highscore 2
bytes 06-08 = highscore 3
bytes 09-11 = highscore 4
bytes 12-14 = highscore 5
bytes 15-17 = highscore 6
bytes 18-20 = highscore 7
bytes 21-23 = highscore 8
bytes 24-26 = highscore 9
bytes 28-37 = name top
bytes 40-49 = name 2
bytes 52-61 = name 3
bytes 64-73 = name 4
bytes 76-85 = name 5
bytes 88-97 = name 6
bytes 100-109 = name 7
bytes 112-121 = name 8
bytes 124-133 = name 9

***Note : When not all places are used in the name (can be 10 characters) the byte(s) will fill up from the front with bytes FFh (hex)
For instance when you would put bill in top highscore:
bytes 28-33 should read FFh (hex)
byte 34 0bh
byte 35 12h
byte 36 15h
byte 37 15h



The alphabet/numbers/characters (hex):
00h = 0
01h = 1
02h = 2
03h = 3
04h = 4
05h = 5
06h = 6
07h = 7
08h = 8
09h = 9
0ah = A
0bh = B
0ch = C
0dh = D
0eh = E
0fh = F
10h = G
11h = H
12h = I
13h = J
14h = K
15h = L
16h = M
17h = N
18h = O
19h = P
1ah = Q
1bh = R
1ch = S
1dh = T
1eh = U
1fh = V
20h = W
21h = X
22h = Y
23h = Z
24h = &
27h = ?
28h = !
29h = (heartshape)
2dh = .
ffh = (space)


--------------
Dna Disturber
--------------
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Wob on June 09, 2009, 07:15:07 pm
They are some strange looking character sets, most of the ones I have hit so far, even when they are non ASCII are at least sequential :)

It is very addictive when you start doing them, it is rewarding once Fyercyrpts has updated HiToText and you see the games you deciphered working. Keep up the good work.

Just a couple of tips that might save you some time.

1. When you get a ASCII set make sure you test all the special (non alpha) characters as I have found they are more often than not non ASCII standard.

2. When you get a sequential set of alpha characters like your last one, you can just list them like this;
     0ah = A
     0bh = B
     ...
     23h = Z

3. It might just be me, I'll let fyrecrypts comment on this one, but I like to account for all the bytes, so if there is padding (like in time pilot) just list it as Byte 07 - padding

4. If you get a game that is really hard to get a high score (I have had a few) and you can see the scores in the high table, then just set them lower in the hi file, then they are easier to beat :)

Cheers,
Wob
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Fyrecrypts on June 09, 2009, 07:28:37 pm
They are some strange looking character sets, most of the ones I have hit so far, even when they are non ASCII are at least sequential :)

It is very addictive when you start doing them, it is rewarding once Fyercyrpts has updated HiToText and you see the games you deciphered working. Keep up the good work.

Just a couple of tips that might save you some time.

1. When you get a ASCII set make sure you test all the special (non alpha) characters as I have found they are more often than not non ASCII standard.

2. When you get a sequential set of alpha characters like your last one, you can just list them like this;
     0ah = A
     0bh = B
     ...
     23h = Z

3. It might just be me, I'll let fyrecrypts comment on this one, but I like to account for all the bytes, so if there is padding (like in time pilot) just list it as Byte 07 - padding

4. If you get a game that is really hard to get a high score (I have had a few) and you can see the scores in the high table, then just set them lower in the hi file, then they are easier to beat :)

Cheers,
Wob

All very good tips, very strange about Time Pilot, and Gyruss, I always double check these with my own .hi files and make sure they are valid, so if they aren't I'll find out right away. Thank you very much for the help!

I once again will be running low on time for a while, however I do hope to get a minor update out sometime this week with some new games, and a fix to Bank Panic.
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Wob on June 09, 2009, 09:46:10 pm
Here is an oldie "Burnin' Rubber" AKA "Bump 'n' Jump" (brubber, bnj, cburnrub, cbnj, cburnrb2)

This one needed some fixes to the hiscore.dat, the first ones (brubber and bnj) were grabbing some unneeded data and a duplicate byte.  The cassette versions (cburnrub, cbnj, cburnrb2) were only grabbing the top #5 initial score and wouldn't get any of the other 95.  I don't know why anyone would play the cassette version, but here are the new entires of all sets to go in the hiscore.dat file.

New hiscore.dat
Quote
;********btime.c
bnj:
brubber:
0:000a:3:12:01
0:500:12c:01:00
0:640:12c:4d:00

;(cassette: bump n jump) and clones
cburnrub:
cbnj:
cburnrb2:
0:9:3:12:01
0:7800:12c:01:00
0:9800:12c:4d:00

Here is the Deciphering after the changes to the hiscore.dat
Quote
This game has a massive 100 high scores in the table.

Notes:
The game only starts with the Top 5, the rest of the bytes are all OO until scores are set.
Maximum Score = 999,999
Name Characters = 3

First the in game high score
- Bytes 000-002 (36 35 01): Is the in game high score, stored in reverse byte order. In this case 13,536

Then the Scores
- Bytes 003-005 (01 35 36): Is the highest (#1) score. In this case, 13,536
- Bytes 006-008 (01 00 12): Is the next (#2) score. In this case, 10,012 points
...
- Bytes 300-302 (00 00 00): Is the last (#100) score. In this case, 0 points

Then lastly the Initials
- Bytes 303-305 (3B 3C 54): Is the highest (#1) name. In this case "ABZ"
- Bytes 306-308 (4D 3B 51): Is the next (#2) name. In this case "SAW"
...
- Bytes 600-602 (00 00 00): Is the last (#100) name. In this case "   "


Non ASCII for the Characters.

The characters
3B: A
3C: B
...
54: Z

Special Characters
55: !
56: :
57: ,
58: . (period)
00:   (blank\space)

Cheers,
Wob
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Wob on June 10, 2009, 01:43:09 am
Here is Shadow Warrior AKA Ninja Gaiden & Clones

This one took a fair bit of fiddling to work out all the bytes, first we have some cleaning up of the hiscore.dat.  I moved all the reference to a single entry, added a missing clone, and removed the last line that was reading a random byte from the middle of the original grab.

Old hiscore.dat entries.
Quote
;(ninja gaiden (world)) clones
shadoww:
ryukendn:
0:62e34:d0:2e:00
0:62e47:1:09:09

;*******gaiden.c (ninja gaiden (world))
gaiden:
0:62e34:d0:2e:00
0:62e47:1:09:09

;shadow warriors (US set 2)(clone)(by tamphax)
shadowwa:
0:62e34:d0:2e:00
0:62e47:1:09:09

To be replaced with this new hiscore.dat entry
Quote
;Shadow Warrior and clones (Ninja Gaiden)
shadoww:
shadowwa:
gaiden:
ryukendn:
ryukenda:
0:62e34:d0:2e:00

The deciphering after the changes to the hiscore.dat
Quote
This game has 10 high scores in the table.

This one is a little different, the memory reference can be converted for our use buy adjusting them for our hi file.  This can be done by using the following equation;
Valueh - 2E34h = New Reference

So for Bytes 000-001 the referece to the #1 Score would be;
2EF4h-2E34h=C0h (Byte 192)

The Tables contains 12 Slots, 10 are the Score table, 2 are spare rows.
When 1 player sets a new high score is set it is put into the first spare row.
When 2 players set new high scores is set it is put into both the spare rows.
The Scores that are bumped off the table them become the repacement spare row(s).

A fresh hi file, has the last two Memory slots (11 & 12) as the spares and then the scores are listed from lowest (slot 1) to highest (slot 10)

Notes:
No in game hi score for this game.
The table is NOT order.
Maximum Score = 999,999
Name Characters = 6

- Bytes 000-001 (2E F4): This is a Memory reference to the First (#1) Score.
- Bytes 002-003 (2E B 4): This is a Memory reference to the First spare row.

- Bytes 004-009 (80 80 80 80 80 00): Is the in game score for Player 1, this is whipped to 0 as soon as the player hits start, no need to do anything with it.
- Bytes 010-015 (80 80 80 80 80 00): Is the in game score for Player 2, as above.

Memory Slot 1
- Bytes 016-017 (00 00): Memory reference to the next score, in this case it's the last score so hence 00 00
- Bytes 018-019 (D0 09): Rank (Range is 00-09 being = 01-10), in this case 10
- Bytes 020-025 (00 00 01 00 00 00): Score, 1 Digit per Byte (Range 00-09), In this Case 1,000
- Bytes 026-031 (59 4F 52 4F 49 5C): Name, In this case "YOROI."

Memory Slot 2
- Bytes 032-033 (2E 44): Memory reference to the next score
- Bytes 034-035 (D0 08): Rank, in this case 9
- Bytes 036-041 (00 00 01 00 00 00): Score, In this Case 1,000
- Bytes 042-047 (4B 41 42 55 54 4F): Name, In this case "KABUTO"

...

Memory Slot 8 (I am showing this Slot as it is the first "spare row")
- Bytes 128-129 (2E C4): Memory reference to the next spare row
- Bytes 130-131 (00 10): The Rank space for the spare rows are both the same, note the 00 instead of D0
- Bytes 132-137 (00 00 01 00 00 00): Score, In this Case 1,000
- Bytes 138-143 (53 41 49 5A 4F 55): Name, In this case "SAIZOU"

Memory Slot 9 (I am showing this Slot as it is the second "spare row")
- Bytes 144-145 (2F 04): Memory reference to the first blank cell after the high scores table.  The location is always 00
- Bytes 146-147 (00 10): The Rank space for the spare rows are both the same, note the 00 instead of D0
- Bytes 148-153 (00 00 01 00 00 00): Score, In this Case 1,000
- Bytes 154-159 (48 41 4E 5A 4F 55): Name, In this case "HANZOU"

...

Memory Slot 12
- Bytes 192-193 (2E E4): Memory reference to the next score
- Bytes 194-195 (D0 00): Rank, in this case 1
- Bytes 196-201 (00 01 01 02 00 00): Score, In this Case 11,200
- Bytes 202-207 (41 42 43 44 45 46): Name, In this case "ABCDEF"


Non ASCII for the Characters.

The characters
41: A
42: B
...
5A: Z

Special Characters
5B:   (space)
5C: . (period)

Screenshot
(http://i42.tinypic.com/mueo8k.png)

Cheers,
Wob
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: dna disturber on June 10, 2009, 11:58:16 am
Fyrecrypts,

As I play crazy kong a lot (because donkey kong is way too hard for me).  :-[
I noticed that the name-entry holds up to 12 characters.
But only 3 show up in hitotext.

In ckong:
bytes 15-26 hold the initals (instead of 15-17)

so the section that hold the initials should be extended by 9 bytes in each pattern.


TIA,

Dna Disturber
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Fyrecrypts on June 10, 2009, 07:09:14 pm
Fyrecrypts,

As I play crazy kong a lot (because donkey kong is way too hard for me).  :-[
I noticed that the name-entry holds up to 12 characters.
But only 3 show up in hitotext.

In ckong:
bytes 15-26 hold the initals (instead of 15-17)

so the section that hold the initials should be extended by 9 bytes in each pattern.


TIA,

Dna Disturber

Ahh, thank you, I will try and fix that as well.
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Wob on June 11, 2009, 12:31:53 am
Today is brought to you by the letter "B", B is for Blood Brothers (bloodbro, bloodbra, weststry)

This one required a tidy up for the hiscore.dat

New hiscore.dat entry
Quote
;********bloodbro.c
bloodbro:
weststry:
bloodbra:  ;******Blood Bros. (set 2)
0:85b1e:10:00:30
0:85b44:A0:00:11

The deciphering after changes
Quote
This game has 20 high scores in the table.

Notes:
Maximum Score = 99,999,999
Maximum Area Value = 9-9
Name Characters = 3


First is the in game high score
I am going to show this in 2 byte chunks, on chunk per digit.
- Bytes 000-015 (0030 0030 0031 0033 0031 0035 0033 0030): Is the in game high score, in this case 131,530

This is stored is ASCII so
30: 0
31: 1
...
39: 9

Then we have the score table
- Bytes 016-019 (00 13 15 30): Is the highest (#1) Score, in this case 131,530
- Bytes 020-022 (2E 21 20): Is the highest (#1) Name, in this case ".! "
- Byte  023 (22): Is the highest (#1) Area, in this case 2-2

- Bytes 024-027 (00 05 52 00): Is the next (#2) Score, in this case 55,200
- Bytes 028-030 (20 41 5A): Is the next (#2) Name, in this case " AZ"
- Byte  031 (12): Is the next (#2) Area, in this case 1-2

...

- Bytes 168-171 (00 00 58 00): Is the last (#20) Score, in this case 5,800
- Bytes 172-174 (54 41 44): Is the last (#20) Name, in this case "TAD"
- Byte  175 (11): Is the last (#20) Area, in this case 1-1


All ASCII for the Characters

The characters
41: A
42: B
...
5A: Z
20:   (space)
21: !
2E: . (period)

Screenshot
(http://i42.tinypic.com/2jee174.png)

Cheers,
Wob
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: FrizzleFried on June 11, 2009, 10:21:15 am
Not sure if this is you guys or what,  but I noticed last night Phoenix HS saves are screwed.   When I loaded up Phoenix,  I had about 43,000 high score but it immediately switched over to a bunch of random characters... when i exited and re-entered,  those random characters are what stayed.
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Fyrecrypts on June 11, 2009, 10:33:13 am
Not sure if this is you guys or what,  but I noticed last night Phoenix HS saves are screwed.   When I loaded up Phoenix,  I had about 43,000 high score but it immediately switched over to a bunch of random characters... when i exited and re-entered,  those random characters are what stayed.


Phoenix did change Feb 5th to allow for more flexibility, it's probably likely that the .hi file was from a hiscore.dat that didn't have the newer changes put in place. The Phoenix changes Cananas did put in were brilliant I thought, before his changes you had to ensure your score moved from P1 or P2 to the top score before exiting. Now those scores are saved as well.

If this isn't the case, then I'll take a look at it and see if I can figure out why it's corrupting.
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Wob on June 11, 2009, 06:46:08 pm
Not sure if this is you guys or what,  but I noticed last night Phoenix HS saves are screwed.   When I loaded up Phoenix,  I had about 43,000 high score but it immediately switched over to a bunch of random characters... when i exited and re-entered,  those random characters are what stayed.


If a game has been changed in the hiscore.dat file then you need to wipe your old .hi file before using the new hiscore.dat file as it will be reading from different bytes.  Easiest way to test is move or delete your .hi file, set some new hi scores and then reload the game a few times and see if there is any data corruption.

~Wob
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: dna disturber on June 11, 2009, 07:32:09 pm
(1941,1941j)

The First 40 bytes seem to be obsolete but I can't get the hiscore.dat to work without them.
I came close , when I start at byte 39 then it all works well (maybe it needs byte 39 ?)
Maybe someone else can take a look at the entry in the hiscore.dat .......(but it will work the way it is now so no rush ofcourse)   :'(

40-43 number 1 score
44-46 initials number 1
47 rank-icon number 1
48-51 number 2 score
52-54 initials number 2
55 rank-icon number 2
56-59 number 3 score
60-62 initials number 3
63 rank-icon number 3
64-67 number 4 score
68-70 initials number 4
71 rank-icon number 4
72-75 number 5 score
76-78 initials number 5
79 rank-icon number 5

*note only top 5 hi-scores are shown in the game , there is however a top 10 ? Well sort of, the last 5 don't seem to be replaced and
are always the same

80-83 score (always 00 02 50 00)
84-86 initials (always COM)
87 rank-icon (always 00)
88-91 score (always 00 02 40 00)
92-94 initials (always CAP)
95 rank-icon (always 00)
96-99 score (always 00 02 30 00)
100-102 initials (always COM)
103 rank-icon (always 00)
104-107 score (always 00 02 20 00)
108-110 initials (always CAP)
111 rank-icon (always 00)
112-115 score (always 00 02 10 00)
116-118 initials (always COM)
119 rank-icon (always 00)

120-123 high-score in game


Rank-icon values can be 00 - 07   
00 being the lowest rank , 07 the highest.

Maybe someone knows the titles to the ranks (if they aren't just made up)  then you could add it to the text in hitotext. (for instance pilot 1st class , 2class , marshal)


Characters are ASCII
41h A
42H B
....
5Ah Z

2Eh = .
2Dh = -
2Ah = *
20h = (space) also when the input initials timeouts it puts 20h in the rest of the initials.


-------------
Dna Disturber
-------------              :cheers:
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: dna disturber on June 11, 2009, 08:33:30 pm
(blueprnt,blueprnj)

00-02 score number 1
03-05 .....
06-08 .....
09-11 .....
12-14 .....
15-17 .....
18-20 .....
21-23 .....
24-26 .....
27-29 score number 10
30 padding ? value 00
31 padding ? value 00
32-34 initials nr.1
35-37 .....
38-40 .....
41-43 .....
44-46 .....
47-49 .....
50-52 .....
53-55 .....
56-58 .....
59-61 initials nr 10.

characters:
90h = (space)
91h = A
92h = B
...
AAh = Z

-------------
Dna Disturber
-------------
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: dna disturber on June 11, 2009, 09:30:30 pm
(crush ,maketrax,maketrxb,korosuke)

00-02 high-score in game (add a zero behind it for actual score)
03-05 initials number 1
06-08 score number 1 (add a zero behind it for actual score)
09-11 initials number 2
12-14 score number 2 (add a zero behind it for actual score)
15-17 initials number 3
18-20 score number 3 (add a zero behind it for actual score)
21-23 initials number 4
24-26 score number 4 (add a zero behind it for actual score)
27-29 initials number 5
30-32 score number 5 (add a zero behind it for actual score)

Ascii characterset:
41h = A
42h = B
...
5Ah = Z

special character:
40h = (space)
When you let the initials timeout the blank spot(s) will be filled with 40h

-------------
Dna Disturber
-------------           :blah:
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Wob on June 11, 2009, 10:38:48 pm
(1941,1941j)

The First 40 bytes seem to be obsolete but I can't get the hiscore.dat to work without them.
I came close , when I start at byte 39 then it all works well (maybe it needs byte 39 ?)
Maybe someone else can take a look at the entry in the hiscore.dat .......(but it will work the way it is now so no rush ofcourse)   :'(

40-43 number 1 score
44-46 initials number 1
47 rank-icon number 1
48-51 number 2 score
52-54 initials number 2
55 rank-icon number 2
56-59 number 3 score
60-62 initials number 3
63 rank-icon number 3
64-67 number 4 score
68-70 initials number 4
71 rank-icon number 4
72-75 number 5 score
76-78 initials number 5
79 rank-icon number 5

*note only top 5 hi-scores are shown in the game , there is however a top 10 ? Well sort of, the last 5 don't seem to be replaced and
are always the same

80-83 score (always 00 02 50 00)
84-86 initials (always COM)
87 rank-icon (always 00)
88-91 score (always 00 02 40 00)
92-94 initials (always CAP)
95 rank-icon (always 00)
96-99 score (always 00 02 30 00)
100-102 initials (always COM)
103 rank-icon (always 00)
104-107 score (always 00 02 20 00)
108-110 initials (always CAP)
111 rank-icon (always 00)
112-115 score (always 00 02 10 00)
116-118 initials (always COM)
119 rank-icon (always 00)

120-123 high-score in game


Rank-icon values can be 00 - 07   
00 being the lowest rank , 07 the highest.

Maybe someone knows the titles to the ranks (if they aren't just made up)  then you could add it to the text in hitotext. (for instance pilot 1st class , 2class , marshal)


Characters are ASCII
41h A
42H B
....
5Ah Z

2Eh = .
2Dh = -
2Ah = *
20h = (space) also when the input initials timeouts it puts 20h in the rest of the initials.


-------------
Dna Disturber
-------------              :cheers:


The first section contains memory references, it's probably similar to Shadow Warrior, the table won't be in order, the memory references will be used to sort the table.

I'll have a better look at this one when I get 5.

Wob
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Wob on June 12, 2009, 02:15:43 am
Here is Bombjack Twin (bjtwin, bjtwina)

This one is fairly simple, it does the logical thing of pulling the in game high score from the same memory location as the top score in the high score table, so no need to double up.

It does have an 11th score stored in memory, but because it is Blank it and makes the section start and finish with 00's, then the hiscore.dat puts it in memory before the system as written to it, thus the scores are wiped each time you load the game.  It would be possible to pull the last score with an additional line in the hiscore.dat but I don't think it's worth the effort, if your 11th you suck anyway :) plus it's not shown in game.

Quote
This game has 10 high scores in the table.

Notes:
Maximum Score = 99,999,999
Maximum Round Value = 99
Name Characters = 3 (I am going to reference the name in 2 Byte Chunks, even though the first byte 0C never changes, I think this is best way to avoid corruption)

- Bytes 000-003 (00 00 31 10): Is the highest (1st) Score, in this case 3,110
- Byte  004     (00): Padding
- Byte  005     (01): Is the highest (1st) Round, in this case 01
- Bytes 006-009 (00 00 00 00): Padding
- Bytes 010-015 (0C3C 0C3C 0C3C): Is the highest (1st) Name, in this case "PPP"


- Bytes 016-019 (00 00 25 70): Is the next (2nd) Score, in this case 2,570
- Byte  020     (00): Padding
- Byte  021     (01): Is the next (2nd) Round, in this case 01
- Bytes 022-025 (00 00 00 00): Padding
- Bytes 026-031 (0C00 0C00 0C00): Is the next (2nd) Name, in this case "AAA"

...

- Bytes 144-147 (00 00 00 10): Is the last (10th) Score, in this case 10
- Byte  148     (00): Padding
- Byte  149     (01): Is the last (10th) Round, in this case 01
- Bytes 150-153 (00 00 00 00): Padding
- Bytes 154-159 (0C04 0C20 0C4C): Is the last (10th) Name, in this case "BIT"


All NON ASCII for the Characters

The characters
0C00: A
0C04: B
...
0C64: Z
0C68: . (period)
0C80:   (space)

Screenshot
(http://i39.tinypic.com/103g305.png)

Cheers,
Wob
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Wob on June 12, 2009, 02:42:20 am
(1941,1941j)

The First 40 bytes seem to be obsolete but I can't get the hiscore.dat to work without them.
I came close , when I start at byte 39 then it all works well (maybe it needs byte 39 ?)
Maybe someone else can take a look at the entry in the hiscore.dat .......(but it will work the way it is now so no rush ofcourse)   :'(

40-43 number 1 score
44-46 initials number 1
47 rank-icon number 1
48-51 number 2 score
52-54 initials number 2
55 rank-icon number 2
56-59 number 3 score
60-62 initials number 3
63 rank-icon number 3
64-67 number 4 score
68-70 initials number 4
71 rank-icon number 4
72-75 number 5 score
76-78 initials number 5
79 rank-icon number 5

*note only top 5 hi-scores are shown in the game , there is however a top 10 ? Well sort of, the last 5 don't seem to be replaced and
are always the same

80-83 score (always 00 02 50 00)
84-86 initials (always COM)
87 rank-icon (always 00)
88-91 score (always 00 02 40 00)
92-94 initials (always CAP)
95 rank-icon (always 00)
96-99 score (always 00 02 30 00)
100-102 initials (always COM)
103 rank-icon (always 00)
104-107 score (always 00 02 20 00)
108-110 initials (always CAP)
111 rank-icon (always 00)
112-115 score (always 00 02 10 00)
116-118 initials (always COM)
119 rank-icon (always 00)

120-123 high-score in game


Rank-icon values can be 00 - 07   
00 being the lowest rank , 07 the highest.

Maybe someone knows the titles to the ranks (if they aren't just made up)  then you could add it to the text in hitotext. (for instance pilot 1st class , 2class , marshal)


Characters are ASCII
41h A
42H B
....
5Ah Z

2Eh = .
2Dh = -
2Ah = *
20h = (space) also when the input initials timeouts it puts 20h in the rest of the initials.


-------------
Dna Disturber
-------------              :cheers:

Ok, I looked at this one, your decoding is fine, the first part is definitely memory addresses but they don't change, and as you said only the top 5 scores\names are every changed.  My guess is that the same hardware is used on other games that allow 10 high scores but they didn't use them all for this one.

We could trim out the excess but I think in this case it's probably best to keep it as it is, that way if we find the game that uses the same hardware we can decode them both the same in HiToText.  So for this one we can just ignore them memory addresses and the last 5 Scores.

Your thoughts Fyrecrypts?

Cheers,
Wob
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: dna disturber on June 12, 2009, 08:48:36 am
(kangaroo,kangaroa,kangarob)

The hiscore.dat misses first byte for highest score (My guess is it's only used for internal use but nevertheless).

Old hiscore.dat:
;********kangaroo.c
kangaroo:
kangaroa:
kangarob:
0:e1a4:02:50:00
0:e1da:02:50:00
0:e1a0:3c:00:00

suggested change:

;********kangaroo.c
kangaroo:
kangaroa:
kangarob:
0:e1a3:03:00:00
0:e1da:02:50:00
0:e1a0:3c:00:00


00-02 highest score (internal use ? / get's copied from bytes 08-10)
03-04 default score at initial startup ? (always 50 00)
05-07 initials number 1
08-10 score number 1
11-13 initials number 2
14-16 score number 2
.....
59-61 initials number 10
62-64 score number 10


The characters:
00h = (blank/space) (happens when you let the initials entry time-out /on initial start hi-score table has blank initials)
0Ah = A
0Bh = B
...
23h = Z

****************************************************************
If the hiscore.dat entry isn't altered then you should delete byte 00 (thus becoming byte 01 byte 00) and change the other bytes accordingly (the last byte then being 63)
it's gonna look like this....

00-01 highest score (internal use ? / get's copied from bytes 07-09)
02-03 default score at initial startup ? (always 50 00)
04-06 initials number 1
etc
****************************************************************

-------------
Dna Disturber  :bat 
-------------


And thank you Wob for looking at the entry of 1941 for me.    :notworthy:
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: dna disturber on June 12, 2009, 10:19:24 am
(pooyan,pooyans,pootan)

the cuddliest of all games !!!  :w00t

00 padding value 00
01 seconds played number 1
02 minutes played number 1
03 padding value 00
04 seconds played number 2
05 minutes played number 2
...
...
...
27 padding value 00
28 seconds played number 10
29 minutes played number 10

32,31,30 score number 1
35,34,33 score number 2
...
59,58,57 score number 10

60-62 initials number 1
63-65 initials number 2
...
87-89 initials number 10

90-92 hi-score in game


characters:
00h = heartshape (only in default hi-score table scores present,can't be selected with initial entry)
10h = (space)
11h = A
12h = B
...
2Ah = Z
2Bh = - (minus)
2Ch = . (period)


Dna Disturber  :cheers:
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Fyrecrypts on June 12, 2009, 10:21:03 am
(1941,1941j)

The First 40 bytes seem to be obsolete but I can't get the hiscore.dat to work without them.
I came close , when I start at byte 39 then it all works well (maybe it needs byte 39 ?)
Maybe someone else can take a look at the entry in the hiscore.dat .......(but it will work the way it is now so no rush ofcourse)   :'(

40-43 number 1 score
44-46 initials number 1
47 rank-icon number 1
48-51 number 2 score
52-54 initials number 2
55 rank-icon number 2
56-59 number 3 score
60-62 initials number 3
63 rank-icon number 3
64-67 number 4 score
68-70 initials number 4
71 rank-icon number 4
72-75 number 5 score
76-78 initials number 5
79 rank-icon number 5

*note only top 5 hi-scores are shown in the game , there is however a top 10 ? Well sort of, the last 5 don't seem to be replaced and
are always the same

80-83 score (always 00 02 50 00)
84-86 initials (always COM)
87 rank-icon (always 00)
88-91 score (always 00 02 40 00)
92-94 initials (always CAP)
95 rank-icon (always 00)
96-99 score (always 00 02 30 00)
100-102 initials (always COM)
103 rank-icon (always 00)
104-107 score (always 00 02 20 00)
108-110 initials (always CAP)
111 rank-icon (always 00)
112-115 score (always 00 02 10 00)
116-118 initials (always COM)
119 rank-icon (always 00)

120-123 high-score in game


Rank-icon values can be 00 - 07   
00 being the lowest rank , 07 the highest.

Maybe someone knows the titles to the ranks (if they aren't just made up)  then you could add it to the text in hitotext. (for instance pilot 1st class , 2class , marshal)


Characters are ASCII
41h A
42H B
....
5Ah Z

2Eh = .
2Dh = -
2Ah = *
20h = (space) also when the input initials timeouts it puts 20h in the rest of the initials.


-------------
Dna Disturber
-------------              :cheers:

Ok, I looked at this one, your decoding is fine, the first part is definitely memory addresses but they don't change, and as you said only the top 5 scores\names are every changed.  My guess is that the same hardware is used on other games that allow 10 high scores but they didn't use them all for this one.

We could trim out the excess but I think in this case it's probably best to keep it as it is, that way if we find the game that uses the same hardware we can decode them both the same in HiToText.  So for this one we can just ignore them memory addresses and the last 5 Scores.

Your thoughts Fyrecrypts?

Cheers,
Wob

I agree that in 1941 we should only display the scores actually displayed in-game, the goal is to have HiToText act exactly as the game would when a new score is added. So if there are say 11 scores, with the 11th score never being shown in-game, but the score is replaced by the hardware, HiToText does the same thing even though it serves no practical purpose. The reason I like to do this is to reduce the amount of possible corruption. Who knows exactly what that 11th score actually does, and if it's not correct maybe something else fails. This is unlikely, of course, but these sorts of things can happen and by emulating what the hardware does we reduce that unknown risk.

Secondly, making changes to the hiscore.dat is a big deal. The system is relatively fragile, and it's very easy to possibly break how it works. Especially for games where the nvram and the memory in the hiscore.dat overlap. If an entry provides all the information we need, we shouldn't change it, even if it contains extra data. Sometimes that extra data is useful for purposes other than hi scores. As I've mentioned before, Bubble Bobble has about 40 or so bytes that contain in-game information about rewards that have been given out since the machine has been turned on. Other different rewards depend on earlier rewards being given out, so the hiscore.dat saves this data so every play though Bubble Bobble doesn't provide the exact same rewards. We wouldn't want to remove those bytes despite being unnecessary for scores.

It doesn't help that there are now two completely different versions of the hiscore.dat being used, our version which contains many changes, fixes, simplifications, and updates. Then there is Leezer's version, the original version that the majority of the people use. He's only been incorporating fixes and updates, and I can understand that, every change obsoletes any older .hi file for that game. Unless it was broken to begin with, he doesn't want to fix it and have people complain that their .hi files don't work anymore. I wish I'd thought of that earlier as some of the hiscore.dat changes we've made were purely cosmetic, and now work has gone into deciphering the .hi files of the newer hiscore.dat. Because of this it's bad to revert as it's a loss of work, and anyone using the new .hi files will once again have to delete their scores. The best thing to do is move on, and learn from that mistake, and not repeat it.
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: dna disturber on June 12, 2009, 11:21:38 am
Fyrecrypts,

I totally agree that we should leave the hiscore.dat the way it is.
Just extract what we need and don't worry about extra data.
If we find an error (!) in an entry we could inform leezer and he could do the fix/update.

That way we don't get sidetracked by maintaining a hiscore.dat as well.

And for the scores.....all that is displayed in the game(s) is good enough for me.
Just as Wob said earlier if you're 11th and didn't make it to the first 10 you're not worth mentioning even if there is a (hidden) 11th place.

Dna Disturber

Keep up the good work.

Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: dna disturber on June 12, 2009, 11:28:34 am
Dang,

Almost forgot to post this one due to the statement fyrecrypts made.  :applaud:

(swimmer,swimmera)

00-05 score number 1 (every byte contains one number ,score 254570 would look like 02 05 04 05 07 00)
06-08 initials number 1
09-14 score number 2
15-17 initials number 2
18-23 score number 3
24-26 initials number 3
27-32 score number 4
33-35 initials number 4
36-41 score number 5
42-44 initials number 5
45-50 hiscore in game (every byte contains one number ,score 254570 would look like 02 05 04 05 07 00)

Characters ASCII
41h = A
42h = B
...
5Ah = Z


Dna Disturber
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Fyrecrypts on June 12, 2009, 01:00:47 pm
Fyrecrypts,

I totally agree that we should leave the hiscore.dat the way it is (leezer's version that is).
Just extract what we need and don't worry about extra data.
If we find an error (!) in an entry we could inform leezer and he could do the fix/update.

That way we don't get sidetracked by maintaining a hiscore.dat as well.

And for the scores.....all that is displayed in the game(s) is good enough for me.
Just as Wob said earlier if you're 11th and didn't make it to the first 10 you're not worth mentioning even if there is a (hidden) 11th place.

Dna Disturber

Keep up the good work.


We'll still be maintaining a hiscore.dat, since Leezer's version does not come out as often as HiToText (well, it might now). We also have entries that are already different. Leezer did not approve of the latest Phoenix changes, however I do like them. So some splitting is going to happen, and really isn't that big of a deal. I incorporate the changes Leezer makes so if you use HiToText, use the version of the hiscore.dat we put out. If you have old .hi files and you don't want to mess with adding them one by one in HiToText for the new version, use Leezer's version.

Edit: Also, thank you very much for all of your decoding dna disturber! I have a lot of catching up to do now though. Hehehe. Don't stop/slow though if you don't want to, one of us will get to it sooner or later. =)
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: dna disturber on June 12, 2009, 06:20:13 pm
Quote
Don't stop/slow though if you don't want to
Maybe you're gonna regret those words  :P
What can I say....I like to puzzle..

(1944 ,1944j,1944d)

This was one #@$#@ tough cookie..to crack  :dizzy:
This game has also nvram but everything we need can be found in the hi.

There are 5 things to extract:
1 scores
2 stagenrs. achieved
3 stagenrs. started from
4 destroy-rate
5 initials

Presenting to you the stars of this evening ..theeeee Bytesssssssss (yep .. I've lost it)
---------
00-03 highscore in game

04-07 number 1 score
08-11 number 2 score
...
...
40-43 number 10 score
---------
44-46 padding
---------
47    stage-nr. achieved number 1 - value in hex  for instance 0ah = level 11 (00h=level 1)
48    started at stage-nr. number 1 - value in hex for instance 0bh = started at level 12 (00h=level 1)    *** for continue buy-ins
49-50 padding
51    stage-nr. achieved number 2
52    started at stage-nr. number 2
53-54 padding
...
...
83    stage-nr. achieved number 10
84    started at stage-nr. number 10
---------
85-87 destroy-rate number 1 - each byte has 1 digit 100% would be 01 00 00 , 92% would be 00 09 02
88       padding
89-91 destroy-rate number 2
92       padding
...
...
121-123 destroy-rate number 10
---------
124     padding
---------
125     1st character of initials number 1
126     padding
127     2nd character of initials number 1
128     padding
129     3rd character of initials number 1
130     padding
131     1st character of initials number 2
132     padding
133     2nd character of initials number 2
134     padding
135     3rd character of initials number 2
136     padding
...
...
181     1st character of initials number 10
182     padding
183     2nd character of initials number 10
184     padding
185     3rd character of initials number 10     
---------

The characters (you have to add 2 to get the next character starting with 00h):
00h = A
02h = B
..
32h = Z

Special characters:
34h = !
36h = &
38h = . (period)
3Ah = @ (at)
3Ch = (male icon)
3Eh = (female icon)
40h = (heartshape)
42h = (smilie)
44h = (space)

Hope you can understand all this....Had to shorten everything , but I hope you see the patterns correctly.

-------------
Dna Disturber
-------------

And now I'm gonna have myself a beer  :cheers:   
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: dna disturber on June 13, 2009, 11:27:38 am
(troangel ,newtangl)


The bytes:
00-02   score number 5
03-05   initials number 5
06-08   score number 4
09-11   initials number 4
12-14   score number 3
15-17   initials number 3
18-20   score number 2
21-23   initials number 2
24-26   score number 1
27-29   initials number 1
30-32   hi-score in game

Characters ASCII:
41h = A
42h = B
...
5Ah = Z
2Eh = . (period)
20h - (space)  *** only sets them when you let the initials entry time-out

-------------------
Dna Disturber
-------------------
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: FrizzleFried on June 14, 2009, 12:21:45 pm
I can confirm the PHOENIX issue I reported above was rectified by deleting the Phoenix .hs file...

Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Cananas on June 14, 2009, 01:23:57 pm
I can confirm the PHOENIX issue I reported above was rectified by deleting the Phoenix .hs file...

Great!! Remember that now, there is no need to start a new game to save the hi score.
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Fyrecrypts on June 14, 2009, 03:09:11 pm
Whew, I am so behind, but that's good! Thanks for all the help everyone. =)
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: dna disturber on June 14, 2009, 06:07:42 pm
(toki) * no clones because they take a different chunk of code (information hiscore.dat)


0-3   score number 1
4-7   score number 2
...
76-79   score number 20
-------------------------------------
80 padding
81-83    initials number 1
84 padding
85-87   initials number 2
...
156 padding
157-159   initials number 20
-------------------------------------
160   area reached number 1   *** see area value's below
161   area reached number 2
...
179   area reached number 20
--------------------------------------
180-183 hi-score in  game
184 padding

The area's value are in hex from 00h to 40h:
00h = 1-A
01h = 1-B
...
09h = 1-J
0Ah = 2-A
0Bh= 2-B
...
10h = 2-H
11h = 3-A
12h = 3-B
...
22h = 3-Q
23h = 4-A
24h = 4-B
...
2Eh = 4-L
2Fh = 5-A
30h = 5-B
...
3Bh = 5-M
3Ch = 6-A
3Dh = 6-B
3Eh = 6-C
3Fh = 6-D
40h = 6-E  (this is the last level)

The characters ASCII:
41h = A
42h = B
...
5Ah = Z

Special characters :
20h = (space)
00h = (blank) *** when initials-entry time-outs
5Bh = [ (in initials-entry select a ! and this will be written in the initials
5Ch = \ (in initials-entry select a ? and this will be written in the initals
5Dh = ] ( in initials-entry select a & and this will be written in the initials

*** don't know if this is a bug in the driver or that it is a bug in the original board or .......

--------------------
Dna Disturber
--------------------  :cheers:
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Wob on June 14, 2009, 06:49:15 pm
(toki) * no clones because they take a different chunk of code (information hiscore.dat)


0-3   score number 1
4-7   score number 2
...
76-79   score number 20
-------------------------------------
80 padding
81-83    initials number 1
84 padding
85-87   initials number 2
...
156 padding
157-159   initials number 20
-------------------------------------
160   area reached number 1   *** see area value's below
161   area reached number 2
...
179   area reached number 20
--------------------------------------
180-183 hi-score in  game
184 padding

The area's value are in hex from 00h to 40h:
00h = 1-A
01h = 1-B
...
09h = 1-J
0Ah = 2-A
0Bh= 2-B
...
10h = 2-H
11h = 3-A
12h = 3-B
...
22h = 3-Q
23h = 4-A
24h = 4-B
...
2Eh = 4-L
2Fh = 5-A
30h = 5-B
...
3Bh = 5-M
3Ch = 6-A
3Dh = 6-B
3Eh = 6-C
3Fh = 6-D
40h = 6-E  (this is the last level)

The characters ASCII:
41h = A
42h = B
...
5Ah = Z

Special characters :
20h = (space)
00h = (blank) *** when initials-entry time-outs
5Bh = [ (in initials-entry select a ! and this will be written in the initials
5Ch = \ (in initials-entry select a ? and this will be written in the initals
5Dh = ] ( in initials-entry select a & and this will be written in the initials

*** don't know if this is a bug in the driver or that it is a bug in the original board or .......

--------------------
Dna Disturber
--------------------  :cheers:

Hi DNA,

Your decoding will work for the clones (tokib, tokiu, tokia, juju, jujub) , the only difference is the location it grabs from, and toki games a duplicate byte at the end (for no apparent reason) this happens on a semi regular basis. Hence your 184 byte is padding, as it's the 3rd byte of your in game hi score.  So for the clones the last byte is 183.

I agree we shouldn't implement unnecessary changes to the hiscore.dat, but I think in cases like this when there is an unnecessary line causing more work in reading\writing, and it means the hi file is different from it's clones for no real reason that the changes should be made.  So I would suggest removing the last line from toki.

Quote
;*********pstadium.c (toki (world set 1))
toki:
0:66b5e:b 4:00:03
0:60008:4:00:00

Note: I had to add a space between the b and 4 because this stupid forum and it's BINGO crap.

Cheers,
Wob
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Wob on June 14, 2009, 09:15:07 pm
Here is Express Raider (exprraid, wexpress, wexpresb, wexpresc)

First off we just need to add a clone (wexpresc) that is missing from the hiscore.dat file.  Just add it to the other wexpress games

modified hiscore.dat entry
Quote
wexpress:
wexpresb:
wexpresc:
0:0245:3:15:00
0:0240:50:20:00

The decoding will also work for the clone (exprrada), the only difference being it doesn't have the in game high score (it pulls it from the table), so the first 3 bytes are not there, shift all the other numbers down by three.

Quote
This game has 10 high scores in the table.

Notes:
Maximum Score = 999,999
Name Characters = 3

- Bytes 00-02 (15 00 00): Is the in game high score, in this case 150,000

- Bytes 03-04 (20 31): 1st Ranking, Stored in ASCII, in this case " 1"
- Bytes 05-07 (53 4B 4E): 1st Name, in this case "SKN"
- Bytes 08-10 (15 00 00): 1st Score, in this case 150,000

- Bytes 11-12 (20 32): 2nd Ranking, Stored in ASCII, in this case " 2"
- Bytes 13-15 (41 49 4F): 2nd Name, in this case "AIO"
- Bytes 16-18 (08 90 00): 2nd Score, in this case 89,000

...

- Bytes 75-76 (31 30): Last Ranking, Stored in ASCII, in this case "10"
- Bytes 77-79 (4E 52 49): Last Name, in this case "NRI"
- Bytes 80-82 (02 40 00): Last Score, in this case 24,000


All ASCII for the Characters, even the special characters

The characters
20:   (space)
21: !
2D: -
3D: =
3F: ?

41: A
42: B
...
5A: Z

Screenshot
(http://i41.tinypic.com/ea1p5l.png)

Cheers,
Wob
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Wob on June 14, 2009, 10:42:59 pm
Here is Cabal (cabal, cabalbl, cabalus2, cabalus, cabala)

Quote
This game has 10 high scores in the table.

Notes:
Maximum Score = 99,999,999
Name Characters = 3

- Bytes 00-02 (44 59 46): 1st Name, in this case "DYF"
- Bytes 03-06 (00 09 97 00): 1st Score, in this case 00099700 (All characters are shown)
- Byte  07    (00): Padding
- Byte  08    (09): Round In hex (See below for decoding)
- Byte  09    (00): Padding

- Bytes 10-12 (54 48 4F): 2nd Name, in this case "THO"
- Bytes 13-16 (00 09 48 00): 2nd Score, in this case 00094800
- Byte  17    (00): Padding
- Byte  18    (08): Round In hex (See below for decoding)
- Byte  19    (00): Padding

...

- Bytes 90-92 (4E 49 54): last Name, in this case "NIT"
- Bytes 93-96 (00 02 88 10): last Score, in this case 00028810
- Byte  97    (00): Padding
- Byte  98    (00): Round In hex (See below for decoding)
Note: No final padding byte is grabbed on the last score

Round Decoding
00h = 1-1
01h = 1-2
02h = 1-3
03h = 1-4
04h = 2-1
05h = 2-2
...
12h = 5-3
13h = 5-4
14h = ALL

All ASCII for the Characters, even the special characters

The characters
20:   (space)
21: !
2D: -
2F: /
3F: ?

41: A
42: B
...
5A: Z

Screenshot
(http://i42.tinypic.com/2wf4bhy.png)

Cheers,
Wob
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: dna disturber on June 17, 2009, 12:27:51 pm
(19xx,19xxa,19xxh,19xxjr1,19xxj,19xxb,19xxd)

Although this game also has nvram all that we need can be extracted from the hi file.

Things we can extract:
scores
rank-levels
initials
accuracy stages + overall (only from top-score)
* (Type of plane used with P1 or P2)
* (number of credits used per game)

------------------------------------------------------
00-03   hi-score in game
   *** the last byte also gives the number of extra credits used
                  00 would mean that you just did it with only 1 credit
                  04 means that you used 4 additional credits etc. (5 credits total)
--------------------------------------------------------
04   1st inital number 1
05   padding
06   2nd initial number 1
07    padding
08   3rd initial number 1
09-12   score number 1  *** see also explanation hi-score in game
13   type of plane used number 1 (with P1 or P2) , see below for values
14   rank-level , see below for values
15    padding
...
136   1st initial number 10
137   padding
138   2nd initial number 10
139    padding
140    3rd initial number 10
141-144   score number 10 *** see also explanation hi-score in game
145   type of plane used number 10 (with P1 or P2) , see below for values
146    rank-level , see below for values
-----------------------------------------------------------------
147-148   number 1 accuracy percentage stage 1
149-150   number 1 accuracy percentage stage 2
...
159-160   number 1 accuracy percentage stage 7
***     value 01 00 gives "perfect" in the score-board for the stages
         value 00 00 gives "uncleared" in the score-board for the stages
161-162    number 1 average accuracy percentage over the 7 stages


Type of plane values:
00   plane "lightning" with player 1
01   plane "sinden" with player 1
02   plane "mosquito" with player 1
10   plane "lightning" with player 2
11   plane "sinden" with player 2
12   plane "mosquito" with player 2
*** With every continue you can choose a plane, the value of this byte is always the last
     plane choosen from your game


Rank-level values:
00h = level 1
01h = level 2
...
1Dh = level 30

The characters:
00h = A
01b = B
...
19h = Z
1Ah = a
1Bh = b
...
33h = z
34h = !
35h = #
36h = $
37h = %
38h = &
39h = (
3Ah = )
3Bh = , (comma)
3Ch = . (period)
3Dh = 0 (zero)
3Eh = 1
..
46h = 9
47h = (space)
FFh = (blank) when you let the initial-entry time-out.

--------------------
Dna Disturber
--------------------    
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: dna disturber on June 17, 2009, 04:34:25 pm
(ajax,typhoon)

00-02   initials number 1
03    padding ?
04-07   score number 1
08-10   initials number 2
11   padding ?
12-15   score number 2
...
72-74   initials number 10
75   padding ?
76-79   score number 10
80-83 hi-score in game


The characters:
11h = A
12h = B
...
2Ah = Z

Dna Disturber  :cheers:
Title: Track & Field
Post by: wwwombat on June 18, 2009, 08:58:18 pm
Can someone check Track and Field for me?

I have the latest HiToText and hiscore.dat from the first post in this forum... if I move hitotext to the mame hi file then I can read the format and records for galaga.hi

If I move it to the nvram directory however and try to do the "examples" (as displayed by HiToText when you run it without parameters) on trackfld.nv then I get exceptions errors (dammit, I forget what... I left the paper on which I scribbled them at home)

I then removed the trackfld.nv in case it was "corrupted" and started MAME, played the game again and set a record but I still get the same error under HiToText.
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Cananas on June 19, 2009, 02:11:22 am
Do not change the path, even if you want to read a nvram file. Point always to the "hi" folder:

hitotext -r c:\mame\hi\trackfld -> (The extension .nv or .hi is not needed)
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Fyrecrypts on June 19, 2009, 09:07:52 am
Do not change the path, even if you want to read and nvram file. Point always to the "hi" folder:

hitotext -r c:\mame\hi\trackfld -> (The extension .nv or .hi is not needed)

Cananas is exactly correct, I thought I'd include why this is the case. Games such as centipede require both the .hi and .nv file. Instead of requiring two separate paths the path to both can be inferred from the hi directory (or the nvram directory now that I think about it). This is done so that the FEs wouldn't have to change anything to get these more complicated games to show up correctly.

In the next version, I will allow "hitotext -r c:\mame\nvram\trackfld" to work just as well as the above.
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: FrizzleFried on June 19, 2009, 09:47:44 am
Not sure if this is related or not,  but I recently lost all my T&F high scores...and the only thing I've done was update the highscore.dat file...I am not sure if it's saving new ones as I only played half a game once I realized all my record times were gone...

EDIT: Well,  I also updated MAME a time or two since I last played so that could be it too...

Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Fyrecrypts on June 19, 2009, 10:04:07 am
Not sure if this is related or not,  but I recently lost all my T&F high scores...and the only thing I've done was update the highscore.dat file...I am not sure if it's saving new ones as I only played half a game once I realized all my record times were gone...

EDIT: Well,  I also updated MAME a time or two since I last played so that could be it too...

Track and Field is nvram only, so the hiscore.dat file has no effect on the scores. Man I hope the nv file format hasn't changed. Track and field was a pain.
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Fyrecrypts on June 19, 2009, 06:02:01 pm
New version out, bug fixes, programming changes, AND new games! I'm still behind so not every game deciphered on this forum is in, but I got some.

Bug fixes:
Yie Ar Kung Fu and Mat Mania were incorrectly reading the stage/round. This has been fixed, thanks Wob for the find.
Crazy Kong now reads/writes 12 characters instead of 3 for the name. Thank you dna disturber!
Bank Panic is now not broken. WOO! Thanks Wob!

New functionality:
As mentioned in an earlier post, you can now specify the nvram directory and not the hi directory and it will work just fine. In addition, if you are using HiToText from either your hi directory or nvram directory you do not need to use the whole path name.

New games added: Popeye, Silkworm, Esp Ra De, Gyruss, Time Pilot, Jungler, Burnin' Rubber, and Shadow Warrior (which was crazy hard BTW).

Sorry it's so late!
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Wob on June 20, 2009, 08:03:53 am
Keep up the good work Fyrecrypts, and I am sure I speak for everyone that you don't need to apologies for the speed of your updates.

I am glad I am not the only one that found Shadow Warrior complicated :)
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: dna disturber on June 20, 2009, 09:04:26 am
Keep up the good work Fyrecrypts, and I am sure I speak for everyone that you don't need to apologies for the speed of your updates.

Same here   :applaud:

Not trying to make you  :dizzy: or  :cry: here but.................here's another one:

Quote
(chasehq,chasehqj,chasehqu)

*** chasehqj and chasehqu should be added to chasehq (as clones) in hiscore.dat to ensure that these games
       can save the hiscores.
 
Things to extract :
*** Top 10 ***
score
initials
stage
credit(s) used (called play in game scoreboard)
*rank in ASCII except for "1st" , (not necessary because the ranks can be based on position of the bytes)



The bytes:

00-03      score number 1
04         stage (in decimal, 01 = stage 1)
05         play (continues) (in decimal, 11 = play 11)
06-08      initials number 1
09          padding
10-14       Rank written in ascii begins with " 2ND "  (there is no no 1st ?) , *** 1 space in front and

back
15          padding
16-19      score number 2
20         stage
21         play (continues)
22-24      initials number 2
25          padding
...
...
128-131      score number 9
132         stage (in decimal, 01 = stage 1)
133         play (continues) (in decimal, 11 = play 11)
134-136      initials number 9
137         padding
138-142      Rank written in ascii "10TH " , *** 1  space at the back
143          padding
144-147      score number 10
148         stage (in decimal, 01 = stage 1)
149         play (continues) (in decimal, 11 = play 11)
150-152      initials number 10


Alphabet ASCII:
41h = A
42h = B
...
5Ah = Z

Special characters:
26h = &
27h = ' (single quote)
28h = (
29h = )
2Ah = × (multiply)
2Bh = +
2Ch = , (comma)
2Dh = - (minus)
2Eh = . (period)
2Fh = ÷ (divide)
30h = 0
31h = 1
...
39h = 9
3Ah = :
3Bh = ;
3Ch = <
3Dh = =
3Eh = >
3Fh = ?
40h = © (copyright)
5Bh = [
5Ch = \
5Dh = ]
5Fh = " (double quote)


Dna Disturber  :cheers:
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: dna disturber on June 20, 2009, 04:17:47 pm
Quote
(hyperspt,hpolym84)
Uses nvram only

Things to  extract:
Top 3 worldrecord of each event (7 events in total)
Top3 worldrecord initials of each event (7 events in total)
*4th place worldrecord of each event (7 events in total) * not displayed in the game
*4th place worldrecord initials of each event (7 events in total) * not displayed in the game
Top 3 scores total-score
Top 3 initials total-score
Top 20 scores total-score "todays best" (Top 3 is not included in this list)
Top 20 initials total-score "todays best" (Top 3 is not included in this list)

The top 3 is shown in attractmode, the 1-10 scores of the top 20 are also shown in attractmode as the
"todays best 10". Numbers 11-20 are only visible when you can set your initials in that range.
 


The Bytes:

00-04   Triple jump - worldrecord 1st ***every byte  is 1 digit for example 00 01 06 07 09 = 16m79
05-07    Initials Triple jump - worldrecord 1st
08-12   Triple jump - worldrecord 2nd ***every byte  is 1 digit for example 00 01 06 07 09 = 16m79
13-15   Initials Triple jump - worldrecord 2nd
16-20   Triple jump - worldrecord 3rd ***every byte  is 1 digit for example 00 01 06 07 09 = 16m79
21-23   Initials Triple jump - worldrecord 3rd
24-28    * Triple jump worldrecord 4th ***every byte  is 1 digit for example 00 01 06 07 09 = 16m79
29-31   * Initials Triple jump - worldrecord 4th
* These are not shown in game (if  a new record is set (1st,2nd or 3rd) the 3rd becomes the 4th, if no new record
is set then bytes 24-31 contain all 00 )

32-36   Skeet shooting - worldrecord 1st ***every byte  is 1 digit for example 00 08 02 00 00 = 8200
37-39   Initials Skeet shooting - worldrecord 1st
40-44   Skeet shooting - worldrecord 2nd ***every byte  is 1 digit for example 00 08 02 00 00 = 8200
45-47   Initials Skeet shooting - worldrecord 2nd
48-52   Skeet shooting - worldrecord 3rd ***every byte  is 1 digit for example 00 08 02 00 00 = 8200
53-55   Initials Skeet shooting - worldrecord 3rd
56-60   * Skeet shooting - worldrecord 4th ***every byte  is 1 digit for example 00 08 02 00 00 = 8200
61-63   * Initials Skeet shooting - worldrecord 4th
* These are not shown in game (if  a new record is set (1st,2nd or 3rd) the 3rd becomes the 4th, if no new record
is set then bytes 56-63 contain all 00 )

64-68   Pole vault - worldrecord 1st ***every byte  is 1 digit for example 00 00 05 08 05 = 5m85
69-71   Initials Pole vault - worldrecord 1st
72-76   Pole vault - worldrecord 2nd ***every byte  is 1 digit for example 00 00 05 08 05 = 5m85
77-79   Initials Pole vault - worldrecord 2nd
80-84   Pole vault - worldrecord 3rd ***every byte  is 1 digit for example 00 00 05 08 05 = 5m85
85-87   Initials Pole vault - worldrecord 3rd
88-92   * Pole vault - worldrecord 4th ***every byte  is 1 digit for example 00 00 05 08 05 = 5m85
93-95   * Initials Pole vault - worldrecord 4th
* These are not shown in game (if  a new record is set (1st,2nd or 3rd) the 3rd becomes the 4th, if no new record
is set then bytes 88-95 contain all 00 )

96-100   Free Style - worldrecord 1st ***every byte  is 1 digit for example 00 05 04 00 01 = 54 ' ' 01
101-103   Initials Free Style - worldrecord 1st
104-108   Free Style - worldrecord 2nd ***every byte  is 1 digit for example 00 05 04 00 01 = 54 ' ' 01
109-111   Initials Free Style - worldrecord 2nd
112-116   Free Style - worldrecord 3rd ***every byte  is 1 digit for example 00 05 04 00 01 = 54 ' ' 01
117-119   Initials Free Style - worldrecord 3rd
120-124   * Free Style - worldrecord 4th ***every byte  is 1 digit for example 00 05 04 00 01 = 54 ' ' 01
125-127   * Initials Free Style - worldrecord 4th
* These are not shown in game (if  a new record is set (1st,2nd or 3rd) the 3rd becomes the 4th, if no new record
is set then bytes 120-127 contain all 00 )

128-132   Weight lifting - worldrecord 1st ***every byte  is 1 digit for example 00 03 06 00 00 = 360kg0
133-135   Initials Weight lifting - worldrecord 1st
136-140   Weight lifting - worldrecord 2nd ***every byte  is 1 digit for example 00 03 06 00 00 = 360kg0
141-143   Initials Weight lifting - worldrecord 2nd
144-148   Weight lifting - worldrecord 3rd ***every byte  is 1 digit for example 00 03 06 00 00 = 360kg0
149-151   Initials Weight lifting - worldrecord 3rd
152-156   * Weight lifting - worldrecord 4th ***every byte  is 1 digit for example 00 03 06 00 00 = 360kg0
157-159   * Initials Weight lifting - worldrecord 4th
* These are not shown in game (if  a new record is set (1st,2nd or 3rd) the 3rd becomes the 4th, if no new record
is set then bytes 152-159 contain all 00 )

160-164   Archery - worldrecord 1st ***every byte  is 1 digit for example 00 03 03 06 00 = 3360
165-167   Initials Archery - worldrecord 1st
168-172   Archery - worldrecord 2nd ***every byte  is 1 digit for example 00 03 03 06 00 = 3360
173-175   Initials Archery - worldrecord 2nd
176-178   Archery - worldrecord 3rd ***every byte  is 1 digit for example 00 03 03 06 00 = 3360
179-183   Initials Archery - worldrecord 3rd
184-188   * Archery - worldrecord 4th ***every byte  is 1 digit for example 00 03 03 06 00 = 3360
189-191   * Initials Archery - worldrecord 4th
* These are not shown in game (if  a new record is set (1st,2nd or 3rd) the 3rd becomes the 4th, if no new record
is set then bytes 184-191 contain all 00 )

192-196   Long Horse - worldrecord 1st ***every byte  is 1 digit for example 00 00 09 05 00 = 9.50
197-199   Initials Long Horse - worldrecord 1st
200-204   Long Horse - worldrecord 2nd ***every byte  is 1 digit for example 00 00 09 05 00 = 9.50
205-207   Initials Long Horse - worldrecord 2nd
208-212   Long Horse - worldrecord 3rd ***every byte  is 1 digit for example 00 00 09 05 00 = 9.50
213-215   Initials Long Horse - worldrecord 3rd
216-220   * Long Horse - worldrecord 4th ***every byte  is 1 digit for example 00 00 09 05 00 = 9.50
221-223   * Initials Long Horse - worldrecord 4th
* These are not shown in game (if  a new record is set (1st,2nd or 3rd) the 3rd becomes the 4th, if no new record
is set then bytes 216-223 contain all 00 )

224-229    padding ?

230-232   total-score number 1 (add a 0 at the back for the real total-score)
233-235   initials number 1
236-238   total-score number 2 (add a 0 at the back for the real total-score)
239-241   initials number 2
242-244   total-score number 3 (add a 0 at the back for the real total-score)
245-247   initials number 3

248-250   total-score "todays best" number 1 (add a 0 at the back for the real total-score)
251-253   initials total-score "todays best" number 1
...
...
362-364    total-score "todays best" number 20 (add a 0 at the back for the real total-score)
365-367    initials total-score "todays best" number 20

The characters :
10h = (space)
11h = A
12h = B
...
2Ah = Z
2Bh = . (period)



There are more scores stored (21-200) but they are reset when you start up the game.
So you can only see them in the one session when you play (unless you have savestate on but we don't want that with a hi patched mame)
So we can't use these scores for this project (and furthermore would you like to see a top 200 ?)

*** My 2 cents on the values from the worldrecords:
   Use 54sec01 instead of the 54 ' ' 01 on Free Style for the display of the records
   Use 360kg instead of the 360kg0 on Weigth lifting for the display of records (it always ends above 1kg)
   The worldrecords are also shown this way in attractmode.


Dna Disturber  :dizzy:  :cheers:
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Fyrecrypts on June 20, 2009, 08:10:19 pm
Code: [Select]
;*******steelwkr
steelwkr:
0:200a:06:00:00

HiToText support coming soon. =)

Enjoy all!
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: wwwombat on June 22, 2009, 08:16:51 am
Track and Field is nvram only, so the hiscore.dat file has no effect on the scores. Man I hope the nv file format hasn't changed. Track and field was a pain.

Okay please be aware that I am on a compiled version of Mame 0132 using the appropriate diff file so that I have the high score support enabled.

I have the very latest (downloaded today) version of HiToText.exe plus the hiscore.dat from the first post in this thread.

So that I know it's working, I can read the format and the hiscores for both dkong and galaga quite happily using the strings HiToText -f c:\mame\hi\dkong and HiToText -r c:\mame\hi\dkong etc.

I can read the format for Track & Field i.e.

HiToText -f c:\mame\hi\trackfld gives

RANK|SCORE|NAME

I can read the alternate format for Track & Field i.e.

HiToText -fa c:\mame\hi\trackfld gives

100M WORLD RECORD|RANK|TIME|NAME
LONG JUMP WORLD RECORD|RANK|DISTANCE|NAME
JAVELIN WORLD RECORD|RANK|DISTANCE|NAME
100M HURDLES WORLD RECORD|RANK|TIME|NAME
HAMMER TOSS WORLD RECORD|RANK|DISTANCE|NAME
HIGH JUMP WORLD RECORD|RANK|HEIGHT|NAME

However when I try a read of the record i.e.

HiToText -r c:\mame\hi\trackfld

I get

Error: System.FormatException: Input string was not in correct format. at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo ino) at HiToText.HiConvert.ByteArrayHexToInt(Byte[] byteArray) at HiGames.trackfld.HiToString() at HiToText.Program.Main(String[] args)

I'm told the hiscore.dat doesn't come into play in this case (as it's nvram only) and I've lost count of the number of times I've exited mame, deleted the trackfld.nv ram and set new records only to achieve the same error including using the DIP switch settings inside the game to erase the world records.

Whatever records I do set inside Track & Field always display and are kept inside the game fine between mame invocations.... I just can't get HiToText to read/display them.

So.... taking a hint from Firecrypts post, has mame132 changed this nvram? Anyone on that level of mame that can try this for me.... anyone else got anything else I can try?
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Wob on June 22, 2009, 08:45:42 am
OK, so had a mate visiting from out of town, we gave the arcade machine a lashing and rediscovered some old games.  Here is the first.

Exerion (exerion, exerionb, exeriont)

First off we just need to add the clones to the hiscore.dat file as it only has the original listed.  Tested working with both clones.

modified hiscore.dat entry
Quote
;********exerion.c
exerion:
exerionb:
exeriont:
0:6600:c8:00:00
0:6700:28:00:00


Now the decoding.
Quote
This game has 100 high scores, but it only records names for the top 5.

Notes:
Maximum Score = 999,900
Name Characters = 3 (Even though there are spaces for 8 char in memory, you are only able to enter 3 char in game, if you modify the memory it will show all 8, but this leads to some corruption on the screen proceeding the high score table)

Also of note, no mater how bad your score it will always put you into 100th place, even if the previous 100th score is higher that yours.

- Bytes 000-001 (02 13): 1st Score, In this case 21,300 (Trailing 00's are added to all scores in game)
- Bytes 002-003 (01 59): 2nd Score, In this case 15,900
...
- Bytes 198-199 (00 09): 100th Score, In this case 900

- Bytes 200-207 (40 5F 5B 00 00 00 00 00): 1st Name, In this case " :."
- Bytes 208-215 (41 42 5A 00 00 00 00 00): 2nd Name, In this case "ABZ"
...
- Bytes 232-239 (41 41 41 00 00 00 00 00): 5th Name, In this case "AAA"


ASCII for the Characters, except the special characters

The characters

00:   (Space) This is used when END is used before all 3 spaces are filled
40:   (Space)

41: A
42: B
...
5A: Z

5F: : (colon)
5B: . (period)


Screenshot
(http://i39.tinypic.com/210ca6v.png)

Cheers,
Wob
Title: Re: HiToText (Version 2009.5.29.0) and ???? Coming soon...
Post by: Fyrecrypts on June 22, 2009, 08:55:42 am
Track and Field is nvram only, so the hiscore.dat file has no effect on the scores. Man I hope the nv file format hasn't changed. Track and field was a pain.

Okay please be aware that I am on a compiled version of Mame 0132 using the appropriate diff file so that I have the high score support enabled.

I have the very latest (downloaded today) version of HiToText.exe plus the hiscore.dat from the first post in this thread.

So that I know it's working, I can read the format and the hiscores for both dkong and galaga quite happily using the strings HiToText -f c:\mame\hi\dkong and HiToText -r c:\mame\hi\dkong etc.

I can read the format for Track & Field i.e.

HiToText -f c:\mame\hi\trackfld gives

RANK|SCORE|NAME

I can read the alternate format for Track & Field i.e.

HiToText -fa c:\mame\hi\trackfld gives

100M WORLD RECORD|RANK|TIME|NAME
LONG JUMP WORLD RECORD|RANK|DISTANCE|NAME
JAVELIN WORLD RECORD|RANK|DISTANCE|NAME
100M HURDLES WORLD RECORD|RANK|TIME|NAME
HAMMER TOSS WORLD RECORD|RANK|DISTANCE|NAME
HIGH JUMP WORLD RECORD|RANK|HEIGHT|NAME

However when I try a read of the record i.e.

HiToText -r c:\mame\hi\trackfld

I get

Error: System.FormatException: Input string was not in correct format. at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo ino) at HiToText.HiConvert.ByteArrayHexToInt(Byte[] byteArray) at HiGames.trackfld.HiToString() at HiToText.Program.Main(String[] args)

I'm told the hiscore.dat doesn't come into play in this case (as it's nvram only) and I've lost count of the number of times I've exited mame, deleted the trackfld.nv ram and set new records only to achieve the same error including using the DIP switch settings inside the game to erase the world records.

Whatever records I do set inside Track & Field always display and are kept inside the game fine between mame invocations.... I just can't get HiToText to read/display them.

So.... taking a hint from Firecrypts post, has mame132 changed this nvram? Anyone on that level of mame that can try this for me.... anyone else got anything else I can try?

I'd say it sounds like the nvram file has changed. I better take a look at it. Thanks for the heads up, I'll try to get a fix in shortly.
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: dna disturber on June 22, 2009, 10:55:11 am
Fyrecrypts,

I don't know exactly when you deciphered it......
The last change (also affected nvram) is:
Quote
0.130u3: Track & Field cleanups [Aaron Giles]: Derived clocks where possible. Complete memory maps from the schematics. Hooked up proper sound command latching. Reimplemented 6802-based ADPCM samples for the bootlegs. Merged memory maps. Extended NVRAM to the full RAM range (according to schematics). Created common include file and modified drivers to use it instead of explicit externs. Changed M6809 CPU1 clock speed to 1536000 Hz and VLM5030 to 3579545 Hz.

And 130u3 was in april 2009.
If you deciphered it before april 2009 then it could be the wrong data that's been extracted.

Dna Disturber
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Fyrecrypts on June 22, 2009, 11:06:15 am
Fyrecrypts,

I don't know exactly when you deciphered it......
The last change (also affected nvram) is:
Quote
0.130u3: Track & Field cleanups [Aaron Giles]: Derived clocks where possible. Complete memory maps from the schematics. Hooked up proper sound command latching. Reimplemented 6802-based ADPCM samples for the bootlegs. Merged memory maps. Extended NVRAM to the full RAM range (according to schematics). Created common include file and modified drivers to use it instead of explicit externs. Changed M6809 CPU1 clock speed to 1536000 Hz and VLM5030 to 3579545 Hz.

And 130u3 was in april 2009.
If you deciphered it before april 2009 then it could be the wrong data that's been extracted.

Dna Disturber


I deciphered it in February. I think I need to modify HiToText to check the MAME version and determine which format to decipher from. This'll be an interesting change.
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: dna disturber on June 22, 2009, 12:15:12 pm
As I am using mame 0.130 hi-patched with hyperspin I decided to take a look at it

Funny thing, I can read all of the records with hitotext -ra  but they don´t display in hyperspin !
So probably the change in 130u3 did alter the nvram adresses

Wouldn´t that be cool to have a mame version-independent hitotext.
Would be nice to have that for the hiscore.dat as well.
Mostly because of the name-changing but also for something like a driver rewrite perhaps. But maybe that last one doesn´t happen very often (changes to the adresses because of a driver rewrite)

for instance
dkong:
standard: 0:6700:c8:00:00
-120: 0:6600:c8:00:00 for everything under 0.120

and mameversion rename in it to get the right locations
mame0.120
dkongjr = dkongjunior

Well I´ll just keep on dreaming :blah:

Dna Disturber
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Fyrecrypts on June 22, 2009, 12:22:08 pm
As I am using mame 0.130 hi-patched with hyperspin I decided to take a look at it

Funny thing, I can read all of the records with hitotext -ra  but they don´t display in hyperspin !
So probably the change in 130u3 did alter the nvram adresses

Wouldn´t that be cool to have a mame version-independent hitotext.
Would be nice to have that for the hiscore.dat as well.
Mostly because of the name-changing but also for something like a driver rewrite perhaps. But maybe that last one doesn´t happen very often (changes to the adresses because of a driver rewrite)

for instance
dkong:
standard: 0:6700:c8:00:00
-120: 0:6600:c8:00:00 for everything under 0.120

and mameversion rename in it to get the right locations
mame0.120
dkongjr = dkongjunior

Well I´ll just keep on dreaming :blah:

Dna Disturber

Hyperspin only sends the -r command to HiToText, it doesn't currently read all scores. I don't think any front end supports alternate scores yet actually. This is part of the reason why there are two separate commands actually, I didn't want the FE devs to have to rewrite anything, so -r acts just as it always has.

As for the hiscore.dat issue, I think that you could just continue to add clones to the code, so the game supported for dkongjr would look like this: m_gamesSupported = "dkongjr,dkngjnrb,dkngjnrj,dkongjre,dkongjunior";

Both the old name clone, and new name clone would both be supported, if the .hi file actually changed from one version to the next something like what I'm doing for Track and Field could be done as well. Different versions for different formats. This will be a cool change.
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: dna disturber on June 22, 2009, 12:55:48 pm

Hyperspin only sends the -r command to HiToText, it doesn't currently read all scores. I don't think any front end supports alternate scores yet actually. This is part of the reason why there are two separate commands actually, I didn't want the FE devs to have to rewrite anything, so -r acts just as it always has.

Within Hyperspin I get no score from track and field , not even the normal scores (-r)
Should that be working with the above explanation in mind ?

TIA,

Dna Disturber
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: FrizzleFried on June 22, 2009, 12:56:10 pm
Any of you pro's had a chance to look at PuzzLoop or PuzzLoop 2?   Two excellent games that I just don' t play much because the highscores don't save...   :'(
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Fyrecrypts on June 22, 2009, 01:01:14 pm
Within Hyperspin I get no score from track and field , not even the normal scores (-r)
Should that be working with the above explanation in mind ?

TIA,

Dna Disturber


It's probably because it's erroring, and I think Hyperspin doesn't display anything on errors.

Any of you pro's had a chance to look at PuzzLoop or PuzzLoop 2?   Two excellent games that I just don' t play much because the highscores don't save...   :'(

I have taken a look, and have not yet found the score table, I haven't stopped trying though.
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Fyrecrypts on June 22, 2009, 01:39:01 pm
Message removed, no longer necessary.
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: FrizzleFried on June 22, 2009, 01:40:14 pm
I have taken a look, and have not yet found the score table, I haven't stopped trying though.

OK...I'll shut up now.  I figured my request was lost amongst the responses above...

Thank you BTW.

Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Fyrecrypts on June 22, 2009, 01:44:23 pm
I have taken a look, and have not yet found the score table, I haven't stopped trying though.

OK...I'll shut up now.  I figured my request was lost amongst the responses above...

Thank you BTW.

Hahaha, I'm not a mamedev, you don't have to tiptoe around me. =D

I actually thought about posting a reply, but since I hadn't found it yet, I figured it wasn't worth a post. And no worries, I'm happy people are interested in the project and really, providing games that aren't in the hiscore.dat that someone actually plays is helping to enhance it. By posting requests, you're actually contributing. Otherwise I'm just left to choosing games I enjoy, and miss some gems that other's know about.
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: FrizzleFried on June 22, 2009, 04:07:32 pm
I have taken a look, and have not yet found the score table, I haven't stopped trying though.

OK...I'll shut up now.  I figured my request was lost amongst the responses above...

Thank you BTW.

Hahaha, I'm not a mamedev, you don't have to tiptoe around me. =D

I actually thought about posting a reply, but since I hadn't found it yet, I figured it wasn't worth a post. And no worries, I'm happy people are interested in the project and really, providing games that aren't in the hiscore.dat that someone actually plays is helping to enhance it. By posting requests, you're actually contributing. Otherwise I'm just left to choosing games I enjoy, and miss some gems that other's know about.

You don't have any idea the floodgate you just opened... do ya?  :)

I'm happy to "contribute" whenever I can. 
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Cananas on June 22, 2009, 04:41:07 pm
Any of you pro's had a chance to look at PuzzLoop or PuzzLoop 2?   Two excellent games that I just don' t play much because the highscores don't save...   :'(

Sorry, but puzzloop and puzzloop2 are included in the hiscore.dat, and they saves correctly. You only must follow the instructions for puzzloop2. In this game, the hiscore table is generated the first time is going to be showed. Then, the hiscore data is changed with the data of the pzloop2.hi.

No special instructions for puzzloop.
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: FrizzleFried on June 22, 2009, 04:56:02 pm
Strange... my HS works but PL and PL2 don't.  I guess I will go in and delete the .HS files (if they are there). 

Now what I don't understand is your instructions for PL2...

"The highscore table is generated the first time is going to be showed.  Then, the highscore data is changed with the data of the pzloop2.hi" 

I'm not quite picking those sentences up.  Can you please reiterate?


EDIT: After deleting the .hi file,  PuzzLoop is working.   When i have a chance I'll have to go searching through the highscore.dat file to find the instructions I assume are there for PuzzLoop 2.   I do apologize for the wild goose chase and I will make sure to CHECK the freakin' .DAT file instead of relying on whether a game is saving HS or not as proof positive it's included or not.

My bad 100%.

:(

EDIT #2: I just checked the latest hiscore.dat (i believe it is) and this is what I found RE: Puzz Loop 2:

Quote
** stage scores not right ** ** you must wait untill the hiscore table has displayed **
;** at least once before you start a game for this save to work  ****

I will have to try this... now I wonder if they mean at boot up,  or after a high score is achieved,  the next game is not to start until the HS table is displayed?


Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Cananas on June 22, 2009, 06:01:47 pm
I will have to try this... now I wonder if they mean at boot up,  or after a high score is achieved,  the next game is not to start until the HS table is displayed?

Yes, only at boot up. Each time you load the roms (of this game) from mame, the hiscore table is 'loaded' into memory only when it is going to be displayed for the first time. After loaded, the data is overwritten with the data of the hi file.

After that, you can play normally.
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Wob on June 22, 2009, 10:43:55 pm
Rolling Thunder (rthunder, rthundro)

Quote
This game has 5 high scores

Notes:
Maximum Score = 9,999,990 = (99 99 99) Trailing 0 is added in game
Maximum Area = 99 = (99) Stored in Decimal
Name Characters = 3

- Bytes 00-02 (00 30 00): 1st Score, In this case 30,000
- Byte  03    (05): 1st Area, In this case 5
- Bytes 04-06 (0A 15 0B): 1st Initials, in this case "ALB"

- Bytes 07-09 (00 20 00): 2nd Score, In this case 20,000
- Byte  10    (05): 2nd Area, In this case 4
- Bytes 11-13 (15 12 1B): 2nd Initials, in this case "LIR"

...

- Bytes 28-30 (00 04 00): 5th Score, In this case 4,000
- Byte  31    (01): 5th Area, In this case 1
- Bytes 32-34 (16 19 12): 5th Initials, in this case "MPI"

- Bytes 35-37 (00 30 00): The in game high score, in this case 30,000


Non ASCII for the Characters

The characters

0A: A
0B: B
...
23: Z

24: ?
25: !
26: .
27: ,
28: :
29: ;

Screenshot
(http://i41.tinypic.com/n4dtoo.png)

Cheers,
Wob
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Wob on June 22, 2009, 11:50:30 pm
Terra Cresta (terracre, terracrb, terracra)

Quote
This game has 5 high scores

Notes:
Maximum Score = 99,999,999 = (99 99 99 99)
Name Characters = 10

- Bytes 00-03 (00 02 50 00): 1st Score, In this case 25,000
- Bytes 04-13 (33 0E 26 35 2A 29 37 21 32 21): 1st Name, in this case "S.FUJIWARA"

- Bytes 14-17 (00 02 00 00): 2nd Score, In this case 20,000
- Bytes 18-27 (29 0E 33 28 29 2B 29 00 00 00): 2nd Name, in this case "I.SHIKI"

...

- Bytes 56-59 (00 00 50 00): 5th Score, In this case 5,000
- Bytes 60-69 (32 0E 39 21 2D 21 24 21 00 00): 5th Name, in this case "R.VAMADA"

- Bytes 70-73 (00 02 50 00): The in game high score, in this case 25,000

- Byte  74    (50): This is a mirror of Byte 02, The reason it is grabbed in the hiscore.dat is because both the two other lines start and end with 00, so it needs this byte to know when the table has been filled and when to dump the data from the hi file into the game memory.

Non ASCII for the Characters, Lots of Special Characters in this one.

The characters
00:   (Space)
01: !
04: ; (Strange Character, sort of like a ; on it's side or .,) See the screenshot
06: &
0A: *
0C: ,
0E: .
1D: -
1F: ?
20: © (Copyright Logo)

21: A
22: B
...
3A: Z

Screenshot showing special characters
(http://i41.tinypic.com/35lw0h0.png)

Cheers,
Wob
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Fyrecrypts on June 23, 2009, 09:58:10 am
Any of you pro's had a chance to look at PuzzLoop or PuzzLoop 2?   Two excellent games that I just don' t play much because the highscores don't save...   :'(

Sorry, but puzzloop and puzzloop2 are included in the hiscore.dat, and they saves correctly. You only must follow the instructions for puzzloop2. In this game, the hiscore table is generated the first time is going to be showed. Then, the hiscore data is changed with the data of the pzloop2.hi.

No special instructions for puzzloop.

Wow, I really should've checked the hiscore.dat file as well. I only ran the game and looked if a .hi file was generated.
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: dna disturber on June 23, 2009, 11:59:15 am
Quote
(outrun, outrun2, outrunb)

Things to extract:
*** Top 20 ***
score
initials
route
record

The bytes:

00-03   Score number 1
04-06   Initials number 1
07   padding
08-09   record number 1
10-13   route number 1
14-17   Score number 2
18-20   Initials number 2
21   padding
22-23   record number 2
24-26   route number 2
...
...
266-269  Score number 20
270-272    Initials number 20
273   padding
274-275   record number 20
276-279   route number 20

Route values : (is actually a graphical presentation , see screenshot)

                                1
                             1 
                         1      2
                      1     2
Schematic : 1     2      3
                      2     3
                         3      4
                             4
                                 5

E5 C8 C1 D1 = 1

E5 C8 C2 D1 = 11
E5 C8 C3 D1 = 12

E5 C8 C4 D2 = 111
E5 C8 C5 D3 = 112
E5 C8 C6 D3 = 122
E5 C8 C7 D4 = 123

E5 C9 C4 D2 = 1111
E5 C8 C4 D5 = 1112
E5 C8 C5 D6 = 1122
E5 C8 C5 D7 = 1123
E5 C8 C6 D6 = 1222
E5 C8 C6 D7 = 1223
E5 C8 C7 D8 = 1233
E5 C8 C7 D9 = 1234

E5 D0 C4 D2 = 11111
E5 C9 C4 DA = 11112
E5 C8 C4 DB = 11122
E5 C8 C4 DC = 11123
E5 C8 C5 DD = 11222
E5 C8 C5 DE = 11223
E5 C8 C5 DF = 11233
E5 C8 C5 E0 = 11234
E5 C8 C6 DD = 12222
E5 C8 C6 DE = 12223
E5 C8 C6 DF = 12233
E5 C8 C6 E0 = 12234
E5 C8 C7 E1 = 12333
E5 C8 C7 E2 = 12334
E5 C8 C7 E3 = 12344
E5 C8 C7 E4 = 12345

Default the bytes are 20 20 20 20 (from the initial score-board)


Record:
10 00 = 1min 7 sec 75/100
01 00 = 4 sec
00 10 = 25/100 sec
00 01 = X  hundreds of a second

digit nr 1 multiply by 1min 7 sec .75 sec
digit nr 2 multiply by 4 sec.
digit nr 3 multiply by .25 sec ( 25/100 of a second)
digit nr 4 values : (hunderds of a second)

0h = 0
1h = 1
2h = 3
3h = 4
4h = 6
5h = 7
6h = 9
7h = 10
8h = 12
9h = 14
Ah = 15
Bh = 17
Ch = 18
Dh = 20
Eh = 21
Fh = 23

So total time = digit nr 1 * 1min7sec .75 sec + digit nr 2 * 4 sec. + digit nr 3 * 0.25 sec + digit 4 (in .xx sec) =
If you didn't finish the game the value of the bytes = 00 00 (and nothing will be displayed)

Hopes this all makes sense !

The characters (ASCII):
41h = A
42h = B
...
5Ah = Z

special characters:
20h = (space)  , when you let the initials entry time-out.
5Bh = . (period)


Dna Disturber  :cheers:
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: FrizzleFried on June 23, 2009, 11:30:56 pm
Regarding Puzz Loop 2... even using the method described in the .HI,  the saves are messed up. 

I followed the instructions and allowed the high score table to run through before playing... i got a high score of over 2 million.  I entered my initials,  let the attract mode start and then exited.  I noted there was a .HI file created.  I checked and while my intials JON are in place 1,  the stock high score of 140,000 shows.   I play a 2nd game... after the game it shows player 1 JON with my new high score... and player 2 JON with 140,000... i exit and return to fine both 1 and 2 JON at 140,000.   

:(

Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Dazz on June 24, 2009, 12:20:42 am
I was just thinking about how cool it could be to have a program that could pull information from HitoText and post them to a database for online HighScore keeping.  I know that it would be nearly impossible to police as far as cheaters go, but it could be pretty cool especially for those of us with our own online communities.

I'd love to have something like this setup for the HyperSpin community... Have it setup to where people could play and HitoText could upload the score file to a specified place on our webserver and then be parsed into something that will be displayed on the site. 

Probably just a pipe dream, but it would be pretty cool...
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Fyrecrypts on June 24, 2009, 12:26:23 am
I was just thinking about how cool it could be to have a program that could pull information from HitoText and post them to a database for online HighScore keeping.  I know that it would be nearly impossible to police as far as cheaters go, but it could be pretty cool especially for those of us with our own online communities.

I'd love to have something like this setup for the HyperSpin community... Have it setup to where people could play and HitoText could upload the score file to a specified place on our webserver and then be parsed into something that will be displayed on the site. 

Probably just a pipe dream, but it would be pretty cool...

HiScanner was exactly this. I removed it because it was unmanagable. ???? is its replacement... and then some.
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: headkaze on June 24, 2009, 12:31:00 am
We were in talks with Tom about setting up a server for the GameEx community but nothing came of it. I don't see how you can prevent cheating.

HiScanner was being updated to improve security but I still can't see how it can prevent cheating. So I'm guessing you dropped development altogether Fyrecrypts?
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Fyrecrypts on June 24, 2009, 12:32:38 am
We were in talks with Tom about setting up a server for the GameEx community but nothing came of it. I don't see how you can prevent cheating.

HiScanner was being updated to improve security but I still can't see how it can prevent cheating. So I'm guessing you dropped development altogether Fyrecrypts?

Yes, HiScanner will be completely obsoleted by ????. Alpha testing coming soon. Like this week soon (I hope).
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: FrizzleFried on June 24, 2009, 10:40:21 am
Is there a way to incorporate HiToText in some fashion in to MAMEWAH?  I use MAMEWAH for my cabs...
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: dna disturber on June 24, 2009, 10:45:49 am
Funny you should say that:

I don't believe they've integrated HiToText into Mala. Only Hyperspin, GameEx, and CPWizard have support for HiToText right now as far as I know.

Edit: However it is pretty FE friendly, all a developer has to do is send commands to the exe. I imagine if FE devs got enough requests to see it used, they'd incorporate it like Tom, Ben, and Bill have for their FEs.

I should probably have a look at this in Mamewah (although not had any requests). Presumably when you select a game it runs the .exe and retrieves the scores from a text file or something?
   ;D

Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: FrizzleFried on June 24, 2009, 01:11:02 pm
Anyone have a video of this program running in a front end.  I'd like to see how the info is presented,  etc...
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Fyrecrypts on June 24, 2009, 01:15:34 pm
Anyone have a video of this program running in a front end.  I'd like to see how the info is presented,  etc...

All I have is the pics on the front page, it's pretty easy to setup though if you already use any of the FEs that incorporate it. I suppose you wouldn't need a video though if you were already using them.
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Dazz on June 24, 2009, 08:18:15 pm
I was just thinking about how cool it could be to have a program that could pull information from HitoText and post them to a database for online HighScore keeping.  I know that it would be nearly impossible to police as far as cheaters go, but it could be pretty cool especially for those of us with our own online communities.

I'd love to have something like this setup for the HyperSpin community... Have it setup to where people could play and HitoText could upload the score file to a specified place on our webserver and then be parsed into something that will be displayed on the site. 

Probably just a pipe dream, but it would be pretty cool...

HiScanner was exactly this. I removed it because it was unmanagable. ???? is its replacement... and then some.
Now is ????, the replacement, going to be able to allow for each individual community to have/host their own high scores?  For instance make it configurable that people would input the URL or whatever required and it would only submit to that specific site.
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Fyrecrypts on June 24, 2009, 09:56:30 pm
Now is ????, the replacement, going to be able to allow for each individual community to have/host their own high scores?  For instance make it configurable that people would input the URL or whatever required and it would only submit to that specific site.

Yes.
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Dazz on June 24, 2009, 10:05:22 pm
Now is ????, the replacement, going to be able to allow for each individual community to have/host their own high scores?  For instance make it configurable that people would input the URL or whatever required and it would only submit to that specific site.

Yes.
Yea!  Please put me down as a tester for the HyperSpin community. :D
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: headkaze on June 25, 2009, 12:39:15 am
Hey you know what would be cool as well? If we could have inter-community comps setup too  ;D

This could turn into alot of fun! I still have my reservations about the security issues though, I really hope you've found a way to solve that.
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Fyrecrypts on June 25, 2009, 12:44:05 am
Hey you know what would be cool as well? If we could have inter-community comps setup too  ;D

This could turn into alot of fun! I still have my reservations about the security issues though, I really hope you've found a way to solve that.

Just wait, I think you'll be pleasantly surprised, on both of your comments. ;)
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: dna disturber on June 25, 2009, 12:24:59 pm
I needed a challenge  :P
Here is Neo Turf masters

Quote
(turfmast)
uses nvram only

Things to extract:
*** TOP 5 ***
Score (as in Golf results)
Initials
Course
--------------------------
The Bytes:

805      score number 1 , see below for values   
804, 807, 806   initials number 1
809       course number 1 , see below for values

808      score number 2 , see below for values
811,810,813   initials number 2
812      course number 2 , see below for values

815      score number 3 , see below for values
814, 817,816   initials number 3
819      course number 3 , see below for values

818      score number 4 , see below for values
821,820,823   initials number 4
822      course number 4 , see below for values

825      score number 5 , see below for values
824,827,826   initials number 5
829      course number 5 , see below for values
         

----------------------------
Score values: (No need really to go beyond -25 or  +5 (above +4 you can't enter your
name)
...
E7 = -25
E8 = -24
..
EF = -17
F0 = -16
F1 = -15
...
FF = -1
00 = EVEN
01 = +1
02 = +2
...
09 = +9
0A = +10
0B = + 11
...

----------------------------
Course values:

00 = G.CANYON
01 = WOODY
02 = FUJIYAMA
03 = SEASIDE


The characters: (the values go up by 2)
00h = A
02h = B
...
0Eh = H
20h = I      *watch out it skips the whole 10-1F range.
22h = J
...
2Eh = P
40h = Q      *watch out it skips the whole 30-3F range.
42h = R
...
4Eh = X
60h = Y      *watch out it skips the whole 50-5F range.
62h = Z
64h = 1
66h = 2
..
6Eh = 6
80h = 7      *watch out it skips the whole 70-7F range.
82h = 8
84h = 9
86h = 0
88h = !
8Ah = ?
8Ch = $
E6h = (space)


Dna Disturber  :cheers:

P.S I'm sure I will get qbert and joust also off the difficult games list , I have looked into them and pretty much figured them out  :dizzy:
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: Wob on June 25, 2009, 05:53:54 pm
I needed a challenge  :P
Here is Neo Turf masters

Bravo, I think you have official qualified for your black belt in hi decoding :)  :applaud: :applaud: :applaud:
Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: dna disturber on June 25, 2009, 07:29:49 pm
 ;D
Bravo, I think you have official qualified for your black belt in hi decoding :)  :applaud: :applaud: :applaud:

Thanks Wob......really appreciate it  :notworthy:

Must get the 1st Dan but.......hiscore.dat entries and debugging games are definitely not my thing  :banghead:

Thank God you guys know that stuff  :applaud:

 :cheers:

Title: Re: HiToText (Version 2009.6.19.0) and ???? Coming soon...
Post by: dna disturber on June 26, 2009, 09:38:54 am
And here is Q*BERT  :angry: (except for the nose...it's q*bert with an M.J. nose)

Quote
(qbert , qberta , qbertjp , qberttst)
uses nvram only

Only the top 9 scores are saved , there is however a top 23.
Numbers 10 to 23 are reset on game start (exiting to mame and starting the game again).
To have all these scores saved there has to be an entry in hiscore.dat which contains
these values. (there isn't one at the moment)

The bytes:
******************************************
2562-2564    initials number 23
2565-2571    score number 23 , see the score explanation below
...
2692-2694   initials number 10
2695-2701   score number 10 , see the score explanation below
*******************************************
I wouldn't put the above in Hitotext (at least not yet)


2702-2704   initials number 9
2705- 2711   score number 9 , see the score explanation below
2712-2714   initials number 8
2715-1721   score number 8 , see the score explanation below
...
2782-2784   initials number 1
2785-2791    score number 1 , see the score explanation below

-----------------------------
The score:
It's one digit per byte (7 bytes total)
05 00 03 00 24 24 24= 5030
The score is made up by 7 bytes, they get filled at the back with 24h (spaces)
other examples

800 would look like:
08 00 00 24 24 24 24

150.400 would look like:
01 05 00 04 00 00 24

2.750.300 would look like:
02 07 05 00 03 00 00
------------------------------

The characters:

0Ah = A
0Bh = B
...
23h = Z
24h = (space)
25h = . (period)


Dna Disturber  :cheers:

P.S next-up Joust
Title: Re: HiToText (Version 2009.6.19.0) and GHOST Coming soon...
Post by: Dazz on June 26, 2009, 08:09:47 pm
GHOST, eh?  Any more details yet? :D
Title: Re: HiToText (Version 2009.6.19.0) and GHOST Coming soon...
Post by: Fyrecrypts on June 26, 2009, 08:29:21 pm
GHOST, eh?  Any more details yet? :D

Soon. ;)
Title: Re: HiToText (Version 2009.6.19.0) and GHOST Coming soon...
Post by: dna disturber on June 28, 2009, 10:55:23 am
Here is Joust  :P

Quote
(Joust , joustr, joustwr)
uses nvram + hi

Things to extract:
*** Top40 ***
score
initials
top 6 of the day scores (if the hiscore.dat entry works)
top 6 of the day initials (if the hiscore.dat entry works)

 
Daily buzzards :
This is the top 6 of the day. These are normally reset when exiting to mame and starting a new game.
However there is a hiscore.dat entry for this, so these scores will list the top 6 from the top 40 (when the initial "daily buzzards" score-board entries are surpassed ofcourse)
Unfortunately this didn't work for me , the daily scores aren't saved in the hi.

*** something wrong with the hiscore.dat entry perhaps ? ***
*** 0.95u3: Changed cpu1 roms addresses from $0-8000 to $10000-18000.?  ***



The bytes:
-------------------------------
Joust champions: (extract from nvram)

358-363       initials number 1
364       padding ?
365-371      score number 1
...
904-909      initials number 40
910       padding ?
911-917      score number 40

There is also a score and initials for 41 (not displayed in game)

918-923      initials number 41
924       padding ?
925-931      score number 41

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

Daily buzzards (top 6) : (extract from hi file)

00-05   Initials score 1
06-13   Score 1 
14-19   Initials score 2
20-27   Score 2 
28-33   Initials score 3
34-41   Score 3 
42-47   Initials score 4
48-55   Score 4 
56-61   Initials score 5
62-69   Score 5 
70-75   Initials score 6
76-83   Score 6 
---------------------------------

The characters:

F0 FA = (space)       
F0 FB = A
F0 FC = B
..
F2 F4 = Z

Explanation:
2 bytes form 1 character.
Basically the first 4 bits of a byte are always F.
You can read it better by leaving the F's away.
0B = A
0C = B
..
24 = Z

But I think you need the full byte to work with Hitotext.

So the initials ABZ would look like : F0 FB F0 FC F2 F4 (6 bytes total)


The score:

The score consist of 1 digit per byte , the first 4 bits of a byte are always F
For example :
4.000 looks like : F0 F0 F0 F4 F0 F0 F0
123.450 looks like : F0 F1 F2 F3 F4 F5 F0


Hope this makes any sense.

Dna Disturber  :cheers:
Title: Re: HiToText (Version 2009.6.29.0) and GHOST Coming soon...
Post by: Fyrecrypts on June 29, 2009, 10:46:01 am
New version out, bug fixes (again), programming changes (again), AND new games (always)! I'm still behind (again) so not every game deciphered on this forum is in, but I got some.

Bug fixes:
Ladybug now displays names correctly. Thanks dna disturber!
Time Pilot and Gyruss clones were not displaying the default scores correctly, they are now. Thanks again dna disturber!
Track and Field has been updated to use the new nvram file format which was changed after 130u1. More information in the new functionality section below. Thanks wwwombat, and dna disturber!
Asterix now displays the character names, and not just 0 or 1. Thanks Cananas!
Asteroids has the new clone added (old parent). Thanks Cananas!
The Astyanax has an upgraded hiscore.dat to now show the top score screen on boot correctly, meaning the scores are overwritten on boot instead of waiting for the game to start. Thanks Cananas!

New functionality:
HiToText now tries to determine what the best decoding format is for the version of MAME you use. Currently, this is only useful for Track and Field. Pre-April 10th 2009 version will use the old nvram format, while anything newer will use the new nvram format. You can also specify a version (by date) if you already know what version you have and would like to speed things up a bit (although checking the version is not too slow). Detailed information can be found by running HiToText from the command line with no commands.

New games added: Rygar, Blood Brothers, Blue Print, Crush, Bomb Jack Twin, Steel Worker, 1941, Klax, Terra Cresta, Rolling Thunder, The Astyanax, Neo Turf Master

A special thanks to Cananas for coding Klax, Terra Cresta, Rolling Thunder, The Astyanax and Neo Turf Master. Klax especially was ridiculously difficult, and I know Cananas put a lot of time into deciphering and coding that one.

Enjoy!
Title: Re: HiToText (Version 2009.6.19.0) and GHOST Coming soon...
Post by: Fyrecrypts on June 29, 2009, 10:48:47 am
Here is Joust  :P

And here is Q*BERT  :angry: (except for the nose...it's q*bert with an M.J. nose)

I needed a challenge  :P
Here is Neo Turf masters

Way to knock the hard list out of the park! =D Thanks for all your work man, it's a real help to the project!
Title: Re: HiToText (Version 2009.6.29.0) and GHOST Coming soon...
Post by: dna disturber on June 29, 2009, 12:08:17 pm

Way to knock the hard list out of the park! =D Thanks for all your work man, it's a real help to the project!

Thanks Fyrecrypts...

But everyone working on this project is doing a great job so
A big hand to the "crew"  :applaud: :applaud: :applaud: :notworthy:

P.S.  I started a bug report page on the spreadsheet.  (one entry already in  :( , it's neo turf masters)
Maybe we could also do a request page in it (if they post them in the thread we put them up there)

 :cheers:

 
 
Title: Re: HiToText (Version 2009.6.29.0) and GHOST Coming soon...
Post by: Fyrecrypts on June 29, 2009, 12:11:26 pm
Thanks Fyrecrypts...

But everyone working on this project is doing a great job so
A big hand to the "crew"  :applaud: :applaud: :applaud: :notworthy:

P.S.  I started a bug report page on the spreadsheet.  (one entry already in  :( , it's neo turf masters)
Maybe we could also do a request page in it (if they post them in the thread we put them up there)

 :cheers:

Works for me actually. And I like the bug report area as well. It's good for documentation.
Title: Re: HiToText (Version 2009.6.29.0) and GHOST Coming soon...
Post by: dna disturber on June 29, 2009, 01:06:27 pm
Future use of HiToText ?

Sometimes the text is too long to get nicely displayed in the FE.
Perhaps the solution is to allow text to be replaced by pictures (within the FE and using default displaypacks for games and some for common use)

Would be nice in games like the simpsons, captain america and the avengers and so on to replace the name of the character with an actual picture of that character.
Or with certain stuff that is displayed in graphics on the game score-board.
Or even the normal rank , instead of Rank: 1 you get a gold trophy with a 1 inside and so on.

I understand that this needs a change in the FE.
I posted someting about this in the hyperspin-board :
http://www.hyperspin-fe.com/forum/showthread.php?t=1525 (http://www.hyperspin-fe.com/forum/showthread.php?t=1525)


It would be awesome for ghost as well I think , you could have a picture that would be displayed with certain initials. You could use your avatar or a mugshot. (maybe with a sort of exchange tool for the pictures that belong to the initials? with GHOST)
Trophy pictures instead of rank.

Here are 2 examples I made with the game the simpsons (with photoshop ofcourse)

 :cheers:

Title: Re: HiToText (Version 2009.6.19.0) and GHOST Coming soon...
Post by: Cananas on June 29, 2009, 04:31:03 pm
(about Joust)
Daily buzzards :
This is the top 6 of the day. These are normally reset when exiting to mame and starting a new game.
However there is a hiscore.dat entry for this, so these scores will list the top 6 from the top 40 (when the initial "daily buzzards" score-board entries are surpassed ofcourse)
Unfortunately this didn't work for me , the daily scores aren't saved in the hi.

*** something wrong with the hiscore.dat entry perhaps ? ***
*** 0.95u3: Changed cpu1 roms addresses from $0-8000 to $10000-18000.?  ***

It does not work because it seems that this top6 is stored in the nvram, at offset 0x3a4 (932). I suppose there is a checksum, because if you try to change something, the games reset the scores.

Something like robotron and defender.
Title: Re: HiToText (Version 2009.6.19.0) and GHOST Coming soon...
Post by: dna disturber on June 29, 2009, 10:20:11 pm

It does not work because it seems that this top6 is stored in the nvram, at offset 0x3a4 (932). I suppose there is a checksum, because if you try to change something, the games reset the scores.

Something like robotron and defender.

Yes that's right the (daily) top6 scores begin at 932 , right behind the top41. But these scores get reset to default names every time you leave the game and start it up again (that's the reason I mentioned that these scores must come from the hi file and not from the nvram, otherwise they are always the same default names used by the program)
This is why you need to have a hi entry in order to keep those scores.

On the other hand , when you use a hi entry the only thing you gonna accomplish is that the daily top 6 will become the same as the first 6 in the top 40.

My 2cents: Keep the daily top 6 as it was designed for (no hi entry) so that lesser players can have a score put on the board as well (even if it is just for one sitting).
Because the hiscores from the top 40 are saved you're not going to miss out on anything.

 :cheers:
Title: Re: HiToText (Version 2009.6.29.0) and GHOST Coming soon...
Post by: dna disturber on June 30, 2009, 07:05:53 pm
M :o rtal K :o mbat   

Quote
(mk , mkr4)
uses nvram only

Things to extract:
***top 15***
Initials
Wins in a row
Score


The Bytes:

6144,6146,6148      initials score 1
6150         score 1 winnings (in hex for instance 12H = 18 Wins)
6160,6158,6156,6154   score 1 (in hex , convert to decimals to get the score)
6162,6164,6166      initials score 2
6168         score 2 winnings (in hex for instance 0AH = 10 Wins)
6178,6176,6174,6172   score 2 (in hex , convert to decimals to get the score)
...
...
6396,6398,6400      initials score 15
6402         score 15 winnings (in hex for instance 04H = 4 Wins)
6412,6410,6408,6406   score 15 (in hex , convert to decimals to get the score)


The characters:

00h = A
01h = B
...
...
19h = Z



Other Clones *** the bytes begin 18432 further on then with the T-Unit models (mk , mkr4)
Perhaps you can use the parent with an if statement (if game=mkla1  address = adress +

18432 or something.....)

(mkla1 , mkla2 , mkla3 , mkla4 , mkprot8 , mkprot9, mkyawdim)
uses nvram only


The Bytes:

24576,24578,24580   initials score 1
24582         score 1 winnings (in hex for instance 12H = 18 Wins)
24592,24590,24588,24586   score 1 (in hex , convert to decimals to get the score)
24594,24596,24598   initials score 2
24600         score 2 winnings (in hex for instance 0AH = 10 Wins)
24610,24608,24606,24604   score 2 (in hex , convert to decimals to get the score)
...
...
24828,24830,24832   initials score 15
24834         score 15 winnings (in hex for instance 04H = 4 Wins)
24844,24842,24840,24838   score 15 (in hex , convert to decimals to get the score)


The characters:

00h = A
01h = B
...
...
19h = Z

I would suggest that you always use "wins" for the wins in a row because with just 1 win
you don't make it to the score-board (so no extra programming needed if value = 1 etc and
no need for win(s)   ).


Dna Disturber  :cheers:


 
Title: Re: HiToText (Version 2009.6.29.0) and GHOST Coming soon...
Post by: dna disturber on July 01, 2009, 04:50:06 am
Mortal kombat 2
Mortal kombat 3
Ultimate Mortal Kombat 3

Quote
(mk2 , mk2chal , mk2r14 , mk2r21 , mk2r32 , mk2r42 , mk2r91)
(mk3 , mk3r10 , mk3r20 , mk3p40)
(umk3 , umk3r10 , umk3r11)
uses nvram only

Things to extract:
***TOP 15***
Initials
Wins in a row
*Score (although not displayed in the game)


The Bytes:

6144,6146,6148      initials score 1
6150         score 1 winnings (in hex for instance 12H = 18 Wins)
6162,6164,6166      initials score 2
6168         score 2 winnings (in hex for instance 0AH = 10 Wins)
...
...
6396,6398,6400      initials score 15
6402         score 15 winnings (in hex for instance 04H = 4 Wins)



The Characters:

00h = A
01h = B
...
...
19h = Z

Characters only used in MK3 en UMK3 (on initial scoreboard, can't enter these characters within the initials entry):
F0h = 1
F1h = 2
F2h = 3
F3h = 4


Note:
Although in Mortal Kombat 2 and 3 ( *not in ultimate mortal kombat 3) the scores are taken out, the system is still intact.
In the nvram, scores can be found together with the initials and "wins in a row".
Upon testing, these scores are indeed changing and are the actual points you would have scored !

Here's the dilemma :
Should we put these scores in HiToText?
It's a nice thing to have but people who use it may be a bit confused when they suddenly see a score where there isn't any in the game.

My vote tends to go to a NO

*******************************
But to complete the info on this game I will put the scores down (mk2 , mk3):
6160,6158,6156,6154   score 1 (in hex , convert to decimals to get the score)
6178,6176,6174,6172   score 2 (in hex , convert to decimals to get the score)
...
...
6412,6410,6408,6406   score 15 (in hex , convert to decimals to get the score)

*If the score doesn't need four bytes , in this case (score 15) byte 6412 then the value of that byte will be set to FF
The maximum score with 3 bytes = 16.777.215
*******************************

By the way , the adresses of the bytes are the same as in (mk , mkr4).
The scores however are somewhat different , in mortal kombat the 4th byte of the score is not set to FF when it isn't needed. In mortal kombat the value would then just be 00.


Dna Disturber  :cheers:
Title: Re: HiToText (Version 2009.6.29.0) and GHOST Coming soon...
Post by: wwwombat on July 01, 2009, 06:20:34 am
Track and Field has been updated to use the new nvram file format which was changed after 130u1.

Okay... thought I'd revisit this again after the latest update... certainly a hitotext -ra trackfld.nv on the 132 version seems to read the records. So (to be sure) I deleted the trackfld.nv, reset it in mame to the default and exited (checked the hitotext read again to see it looked like the default scores in mame...it did) and then set about re-entering my paper-stored high scores.

Interesting to note that there seems to be some internal validation in hitotext? i.e. my son's top 3 Long Jump scores are 9.09m, 8.77m and 8.37m. Entering the first one (hitotext -wa trackfld.nv "LONG JUMP WORLD RECORD" 1 9.09m NTW) seems to store okay. Entering the other 2 don't seem to take effect as they aren't better than the default scores - the third distance in this case is 8.77m (although I thought in the game if you tied a world record then you took precedence?). That's a slight pity if such validation does take place as I was hoping to alter all 3 JAVELIN scores (only the 3rd place of which we've managed to claim so far) initially to something we could beat more readily.

Where we hold all 3 top scores (hitotext -wa trackfld.nv "HIGH JUMP WORLD RECORD" 2.42m WOM & ditto for 2.41m/WOM 2.40m/WOM and hitotext -wa trackfld.nv "HAMMER TOSS WORLD RECORD" 93.36m WOM & ditto for 92.76m/NTW 90.50m/NTW) then they seemed to store and display okay under hitotext.

Wondering about this possible validation I decided to mess around and didn't seem to matter what I put in the rank field i.e. if I put in originally hitotext -wa trackfld.nv "LONG JUMP WORLD RECORD" 3 9.09m NTW then it would still correctly be placed in first place. This is intentional Firecrypts?

With this in mind I then proceeded to reverse-write the score hi score table i.e. hitotext -w trackfld.nv 1 67680 NTW and then hitotext -w trackfld.nv 1 75910 WOM and then hitotext -w trackfld.nv 1 99640 NTW.

However it appears that each time I write out one of these records what appears in that section of the tale instead of my score is RANK|900000|NLA so that after I done these three entries and did a hitotext -r trackfld.nv again I had

1|900000|NLA
2|900000|NLA
3|900000|NLA
4|10000|...
5|10000|...

etc.


103|10000|...
104|10000|...
105|0|...
106|0|...

etc.

160|0|...

Some..my scores don't exist at all and I'm filling the tables with scores I couldn't possibly beat in my dreams.

Could someone else validate this for me and confirm as something for Firecrypts to look at? (after backing up their trackfld.nv first of course for later restoration)
Title: Re: HiToText (Version 2009.6.29.0) and GHOST Coming soon...
Post by: Fyrecrypts on July 01, 2009, 08:55:03 am
Track and Field has been updated to use the new nvram file format which was changed after 130u1.

Okay... thought I'd revisit this again after the latest update... certainly a hitotext -ra trackfld.nv on the 132 version seems to read the records. So (to be sure) I deleted the trackfld.nv, reset it in mame to the default and exited (checked the hitotext read again to see it looked like the default scores in mame...it did) and then set about re-entering my paper-stored high scores.

Interesting to note that there seems to be some internal validation in hitotext? i.e. my son's top 3 Long Jump scores are 9.09m, 8.77m and 8.37m. Entering the first one (hitotext -wa trackfld.nv "LONG JUMP WORLD RECORD" 1 9.09m NTW) seems to store okay. Entering the other 2 don't seem to take effect as they aren't better than the default scores - the third distance in this case is 8.77m (although I thought in the game if you tied a world record then you took precedence?). That's a slight pity if such validation does take place as I was hoping to alter all 3 JAVELIN scores (only the 3rd place of which we've managed to claim so far) initially to something we could beat more readily.

Where we hold all 3 top scores (hitotext -wa trackfld.nv "HIGH JUMP WORLD RECORD" 2.42m WOM & ditto for 2.41m/WOM 2.40m/WOM and hitotext -wa trackfld.nv "HAMMER TOSS WORLD RECORD" 93.36m WOM & ditto for 92.76m/NTW 90.50m/NTW) then they seemed to store and display okay under hitotext.

Wondering about this possible validation I decided to mess around and didn't seem to matter what I put in the rank field i.e. if I put in originally hitotext -wa trackfld.nv "LONG JUMP WORLD RECORD" 3 9.09m NTW then it would still correctly be placed in first place. This is intentional Firecrypts?

With this in mind I then proceeded to reverse-write the score hi score table i.e. hitotext -w trackfld.nv 1 67680 NTW and then hitotext -w trackfld.nv 1 75910 WOM and then hitotext -w trackfld.nv 1 99640 NTW.

However it appears that each time I write out one of these records what appears in that section of the tale instead of my score is RANK|900000|NLA so that after I done these three entries and did a hitotext -r trackfld.nv again I had

1|900000|NLA
2|900000|NLA
3|900000|NLA
4|10000|...
5|10000|...

etc.


103|10000|...
104|10000|...
105|0|...
106|0|...

etc.

160|0|...

Some..my scores don't exist at all and I'm filling the tables with scores I couldn't possibly beat in my dreams.

Could someone else validate this for me and confirm as something for Firecrypts to look at? (after backing up their trackfld.nv first of course for later restoration)

There is a validation, yes. It was built that way because the first application I created was HiScanner which saved scores, so per-game to know whether a score was better or not entering a score forced the validation first. It's currently not easy to replace scores with lower scores unless you delete the entire nvram/hi file and place in the scores you want to be placed. However, it appears that my debugging code got into this version of HiToText and so all those writes you are seeing are getting my debugging info instead of what you actually put in there. I'll put out a hot fix in a few hours.
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: Fyrecrypts on July 01, 2009, 10:35:50 am
A quick hot fix is the reason for the new version to deal with the issue with debugging info replacing -w commands. Sorry about that.

In addition, a few bug fixes to The Astyanax were fixed regarding new scores. aquajckj has been added to the hiscore.dat. aliensy5 has been added as a clone in HiToText.

Also, some games were added: 1944, Express Raider, Kangaroo, Swimmer, and Tropical Angel.
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: Cananas on July 01, 2009, 11:51:47 am
A quick hot fix is the reason for the new version to deal with the issue with debugging info replacing -w commands. Sorry about that.

In addition, a few bug fixes to The Astyanax were fixed regarding new scores. aquajckj has been added to the hiscore.dat. aliensy5 has been added as a clone in HiToText.

Also, some games were added: 1944, Express Raider, Kangaroo, Swimmer, and Tropical Angel.

Great. Thank you for the fixes (I have discovered a new tool: Winmerge...)

About you debugging information... Yes. But you don't need to add this lines for debugging. You can edit the properties of the proyect and add the debug data in the commnad line options. (I'm now at work, but if you don't find this option, I will post a screen.)
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: Fyrecrypts on July 01, 2009, 12:01:05 pm
A quick hot fix is the reason for the new version to deal with the issue with debugging info replacing -w commands. Sorry about that.

In addition, a few bug fixes to The Astyanax were fixed regarding new scores. aquajckj has been added to the hiscore.dat. aliensy5 has been added as a clone in HiToText.

Also, some games were added: 1944, Express Raider, Kangaroo, Swimmer, and Tropical Angel.

Great. Thank you for the fixes (I have discovered a new tool: Winmerge...)

About you debugging information... Yes. But you don't need to add this lines for debugging. You can edit the properties of the proyect and add the debug data in the commnad line options. (I'm now at work, but if you don't find this option, I will post a screen.)

I have command line options for both reading and writing based on if I'm doing a Release or Debug. "-ra "E:\Stuff\Nick Test\hi\%r.hi"" for release, and "-w "E:\Stuff\Nick Test\hi\%r.hi" 1 70.00m NLA" for debug. %r is a variable I replace with a romname of whatever I'm debugging. However, if debug it just replaces everything after .hi with a variable I have in program.cs. This just makes it easier for me to swap games in and out for testing purposes. My problem was setting a flag that was enabled for both debug and release versions, instead of just debug versions. Since the exe I create is a release version the debug flag isn't active and the debug variables I have don't get used.
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: Cananas on July 01, 2009, 02:47:25 pm
I said that you could do that:
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: Fyrecrypts on July 01, 2009, 03:24:34 pm
I said that you could do that:

I am doing that. =) I just also have a couple of variables in program.cs that I use, mostly because it's much much quicker to save and change things there. The command line still goes for debugging purposes, and instead of always having to change the value in the properties, I can just modify the text of the variable, after I test a couple dozen times it's just so much quicker to change the text of a few string variables. I just was stupid and set a few flags incorrectly and they seeped into the release build, that problem's solved and I still have my debugging working just fine. =D
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: RetroBorg on July 02, 2009, 09:08:14 am
Okay, I don't really know exactly what I'm doing.  :dizzy:

Berzerk

Scoring

  0-3     score number 1
  6-8     score number 2
  c-e     score number 3
12-14 score number 4
18-1a score number 5
1e-20 score number 6
24-26 score number 7
2a-2c score number 8
30-32 score number 9
36-38 score number 10

Alphabet

A   41
B   42
C   43
D   44
E   45
F   46
G   47
H   48
I   49
J   4A
K   4B
L   4C
M   4D
N   4E
O   4F
P   50
Q   51
R   52
S   53
T   54
U   55
V   56
W   57
X   58
Y   59
Z   5A

Hopefully this helps.





Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: dna disturber on July 02, 2009, 11:10:00 am
Hi RetroBorg,

Nice to see that you're joining the deciphering disco.  :applaud:

Okay, I don't really know exactly what I'm doing.  :dizzy:

Berzerk

Scoring

  0-3     score number 1
  6-8     score number 2
  c-e     score number 3
12-14 score number 4
18-1a score number 5
1e-20 score number 6
24-26 score number 7
2a-2c score number 8
30-32 score number 9
36-38 score number 10

Alphabet

A   41
B   42
C   43
D   44
E   45
F   46
G   47
H   48
I   49
J   4A
K   4B
L   4C
M   4D
N   4E
O   4F
P   50
Q   51
R   52
S   53
T   54
U   55
V   56
W   57
X   58
Y   59
Z   5A

Hopefully this helps.







You've got the scores covered.... score number 1 was a typo probably.
That should be 0-2 (3 bytes for each score).

You've got the characters (alphabet) right.
Although there is one other character, when you get a hiscore and enter only 1 or 2 initial(s) and let the timer run out , the ones not entered get filled with a (space) that's 20 in Hex.

You only forgot to mention where the adresses are for the initials, they are right behind the scores :
03-05 Initials number 1
09-b  Initials number 2
etc.

When all that typing is becoming a bit annoying here is a little tip
If there is a recognizable pattern you can short things , for instance with the alphabet

A 41
B 42
..
..
Z 5A

And you can do the same for the locations of the bytes:

00-02 score number 1
03-05 initials number 1
06-08 score number 2
09-0b initials number 2
...
...
36-38 score number 10
39-3b initals number 10

Great work.

Soon you can admire your own work when this gets implemented in HiToText  :cheers:
I'm curious what your next game will be   :)

P.S. I put it on the HiToText spreadsheet
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: RetroBorg on July 02, 2009, 09:41:50 pm
Thanks dna disturber for your tips, that's exactly what I needed.

I was going to do River Patrol (rpatrolo) next but I can't seem to get high scores to save for that game even though it's supported in highscore.dat. Does anybody else have that trouble?

As far as what other games I might do, I hadn't given it too much thought. I've made a few themes for HyperSpin so I might go through and see which one of them don't have HiToText support yet and do those.

Here's a link to my themes: http://www.hyperspin-fe.com/forum/album.php?albumid=23

I guess other than that, any favourites I play that aren't supported yet as well, I prefer old school games, early to mid eighties.
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: dna disturber on July 03, 2009, 01:52:00 am
Thanks dna disturber for your tips, that's exactly what I needed.

I was going to do River Patrol (rpatrolo) next but I can't seem to get high scores to save for that game even though it's supported in highscore.dat. Does anybody else have that trouble?

As far as what other games I might do, I hadn't given it too much thought. I've made a few themes for HyperSpin so I might go through and see which one of them don't have HiToText support yet and do those.

Here's a link to my themes: http://www.hyperspin-fe.com/forum/album.php?albumid=23

I guess other than that, any favourites I play that aren't supported yet as well, I prefer old school games, early to mid eighties.

Dude , you rock....   :notworthy: :notworthy: :notworthy:
Definitely recognize the themes  ;D.....awesome work !
A lot of people see those every time they want to play a game :cheers:

By the way River patrol was renamed:
0.122u8: River Patrol (Orca) is now the parent set. Renamed (rpatrolo) to (rpatrol).
So if you rename rpatrolo to rpatrol in hiscore.dat then the Hi will be created.
I will put this one in the bug-report so that with the next release the hiscore.dat will have that gamename as well (we'll want to keep rpatrolo as well for the people that use a mame before 0.122u8

I found the rename info on http://maws.mameworld.info/maws/ (http://maws.mameworld.info/maws/) (every info on the games you can find here)

Have fun deciphering this one  :dizzy:

Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: RetroBorg on July 03, 2009, 09:36:24 am
Dude , you rock....   :notworthy: :notworthy: :notworthy:
Definitely recognize the themes  ;D.....awesome work !
A lot of people see those every time they want to play a game :cheers:

Thanks for the compliments, I hope people enjoy them.

By the way River patrol was renamed:
0.122u8: River Patrol (Orca) is now the parent set. Renamed (rpatrolo) to (rpatrol).
So if you rename rpatrolo to rpatrol in hiscore.dat then the Hi will be created.
I will put this one in the bug-report so that with the next release the hiscore.dat will have that gamename as well (we'll want to keep rpatrolo as well for the people that use a mame before 0.122u8

I found the rename info on http://maws.mameworld.info/maws/ (http://maws.mameworld.info/maws/) (every info on the games you can find here)

Have fun deciphering this one  :dizzy:

Thanks for the info on River Patrol, I was getting frustrated that my scores weren't saving.

I'll give it a go.
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: RetroBorg on July 03, 2009, 10:28:07 am
River Patrol (rpatrol)

Score

4-9   score number 1
E-13   score number 2
18-1D   score number 3

each byte = 1 digit

e.g. 01 02 03 04 05 06 = score of 123,456

Initials

there are four initials to each score

0-3   initials number 1
A-D   initials number 2
14-17   initials number 3

Alphabet

A   0A
B   0B
C   0C
D   0D
E   0E
F   0F
G   10
H   11
I   12
J   13
K   14
L   15
M   16
N   17
O   18
P   19
Q   1A
R   1B
S   1C
T   1D
U   1E
V   1F
W   20
X   21
Y   22
Z   23
Space   24
.   26

Hope this is okay.


Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: dna disturber on July 03, 2009, 10:59:30 am
River Patrol (rpatrol)

Hope this is okay.


Perfect.......

I will add it to the spreadsheet  :cheers:
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: Cananas on July 03, 2009, 03:34:18 pm
River Patrol (rpatrol)

Great. I have finished to code it (and its clones)(it will be included in the next version).
Good work. One suggestion: there is no need to write all the alphabet. Just include the firts and the lasts if they are consecutives.

To avoid duplicated work, PM Fyrecrypts and he will give you access to the WIP games list and more:
Quote
A Google spreadsheet is listed here that shows information about what games are deciphered, what games people are working on, and what games we need help with to decipher.

http://spreadsheets.google.com/pub?key=r1aOWGSATauwVHbhlucsGWQ&output=html

If you'd like to have access to edit this spreadsheet, as you'd like to do work without someone duplicating it, or have information about a particularly difficult game to decipher, please post here or e-mail me and I will give you access to modify the spreadsheet.

Welcome aboard!!
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: RetroBorg on July 04, 2009, 12:03:54 am
Welcome aboard!!

Thanks.
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: RetroBorg on July 04, 2009, 12:05:58 am
Can anybody get Crazy Rally (crzrally) to save scores, it says it's supported but doesn't work for me.

I wouldn't mind having a go at this one as my nephew and niece always play it when they come over.
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: Cananas on July 04, 2009, 06:25:58 am
No problem. It will be in the next update.

For the moment, here you have the correct hiscore.dat data that saves the hi-scores:
Code: [Select]
crzrally:
crzrallg:
crzralla:
0:c200:01:ff:ff
0:c000:36:00:00

The order of the data is very important here to avoid mame crashes. The first byte is to control when mame must overwrite the other data.

9 entries
Score: 3 bytes
Names: 3 bytes ASCII Char
No special chars

Compiled and running!!
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: RetroBorg on July 04, 2009, 07:35:59 am
No problem. It will be in the next update.

Thanks.

For the moment, here you have the correct hiscore.dat data that saves the hi-scores:
Code: [Select]
crzrally:
crzrallg:
crzralla:
0:c200:01:ff:ff
0:c000:36:00:00

Excellent, works a treat.


The order of the data is very important here to avoid mame crashes. The first byte is to control when mame must overwrite the other data.

9 entries
Score: 3 bytes
Names: 3 bytes ASCII Char
No special chars

Compiled and running!!

Thanks again.
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: dna disturber on July 04, 2009, 10:35:11 am
Here is  Metal Slug - Super Vehicle-001 :blowup: :blowup: :blowup:

Quote
(mslug)
uses nvram only

Things to extract:
*** TOP 10 ***
Rank
Score
Initials



The bytes:

802       rank 1 (in hex 01 = 1 , 0a = 10)
805,804,807,806 score 1
808-813   initials score 1
814      rank 2 (in hex 01 = 1 , 0a = 10)
817,816,819,818   score 2
820-825   initials score 2
...
...
910      rank 10 (in hex 01 = 1 , 0a = 10)
913,912,915,914   score 10
916-921   initials score 10



The characters (yet another variation I haven't come across) :  :dizzy:
One character is 2 bytes large.

40 0B = (space)
42 0B = !
4C 0C = . (period)
4E 0C = ?

60 0B = 0 (zero)
62 0B = 1
64 0B = 2
66 0B = 3
68 0B = 4
6A 0B = 5
6C 0B = 6
6E 0B = 7
60 0C = 8
62 0C = 9

82 0B = A
84 0B = B
86 0B = C
88 0B = D
8A 0B = E
8C 0B = F
8E 0B = G
80 0C = H
82 0C = I
84 0C = J
86 0C = K
88 0C = L
8A 0C = M
8C 0C = N
8E 0C = O
A0 0B = P
A2 0B = Q
A4 0B = R
A6 0B = S
A8 0B = T
AA 0B = U
AC 0B = V
AE 0B = W
A0 0C = X
A2 0C = Y
A4 0C = Z


Dna Disturber  :cheers:

Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: dna disturber on July 04, 2009, 10:15:40 pm
Here is PENGO  :bump

Quote

(pengo , pengob , pengo2 , pengo2u , pengo3u , pengo4 , penta)
*clone penta needs to be added to hiscore.dat (same adresses as pengo)

Things to extract:
*** TOP 5 ***
Initials
Score
Act (round)



The Bytes:

01,00    score 5 (in hex, convert to decimal + add 0 at the back for real score)
02   act 5 (in hex , 01 = act 1 , 0a = act 10)
03-05   initials 5
07,06   score 4 (in hex, convert to decimal + add 0 at the back for real score)
08   act 4 (in hex , 01 = act 1 , 0a = act 10)
09-11   inititals 4
...
...
25,24   score 1 (in hex, convert to decimal + add 0 at the back for real score)
26   act 1 (in hex , 01 = act 1 , 0a = act 10)
27-29   initials 1

31,30   hiscore in game (in hex, convert to decimal + add 0 at the back for real score)



The characters (ASCII) :

20 = (space)
41 = A
42 = B
..
..
5A = Z

Special character (non ascii):

5B = . (period)


Dna Disturber  :cheers:
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: dna disturber on July 05, 2009, 02:00:50 pm
Here is Journey.... :w00t

Quote
(journey)
uses nvram only

Things to extract:
*** TOP 10 ***
initials
score



The bytes:

07-12   hiscore in game (every byte is a single digit , 00 04 06 05 00 00 = 46500)
There is a check to see if the hiscore is broken
This is at:
80-82   hiscore in game (in decimals)
If this is surpassed the bytes at 07-12 will change.
* If you manually alter 07-12 you will have the hiscore in game set. But the check at 80-82
will be lower. If someone beats that score the hiscore in game will be altered (even though
the hiscore in game was higher) !

Hope this makes sense.....


20-22    initials 1
23-25   score 1 (in decimals)
26-28   initials 2
29-31   score 2
..
..
74-76   initals 10
77-79   score 10



The characters in ASCII :

20 = (space)
41 = A
42 = B
..
..
5A = Z

Special characters (non ASCII)

00

*** The initial score-board is filled up with 00 's (initials and scores).
In the game these scores are not displayed. So if  2 scores are set the score-board will only let us see 2.
My suggestions is to check whether initials and score are all 00 's . If the answer is yes then that is the end of the score-board. In that case they don't get displayed in HiToText (just as in the game).


Dna Disturber  :cheers:
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: Wob on July 05, 2009, 08:17:13 pm
Hey All, been out of the loop for a week and look at all the action.

Work has been fairly hectic, hoping to get some more time to do a few more games soon.

Retroborg: Welcome to the fold :) I'm a big fan of your HS themes.  Always good to seem another set of hands to help decipher games.

dna disturber: You are a machine, pumping out some hard ones there.  Also good to see you passing on the same wisdom that was passed on to you :)

Cheers,
Wob
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: dna disturber on July 05, 2009, 09:38:37 pm
Hi Wob....

dna disturber: You are a machine, pumping out some hard ones there.  Also good to see you passing on the same wisdom that was passed on to you :)

Cheers,
Wob

Had to pass the wisdom on because the master wasn't home  :D
I became a bit worried.....no new deciphering data from you in a couple of days....never scare me like  that again.... ;)

 :cheers:
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: dna disturber on July 06, 2009, 07:43:04 am
Timber & Tapper
uses nvram only

(timber)
(tapper , rbtapper , sutapper , tappera)

These 2 games are identical to journey.
So you can use the deciphering data from journey and use them on these fun games.

(Never played timber before.......I found me a little gem)

Dna Disturber  :cheers:
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: zallax on July 06, 2009, 05:33:41 pm
I have decoded Discs of Tron (Stand-up) and (Environmental).  The attached zip file includes the NV files from both dotron and dotrone as well as the C# games files to support them.
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: Fyrecrypts on July 06, 2009, 05:37:03 pm
I have decoded Discs of Tron (Stand-up) and (Environmental).  The attached zip file includes the NV files from both dotron and dotrone as well as the C# games files to support them.

For some reason zip files do not work on this forum, I'll PM you with my e-mail address.
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: Cananas on July 07, 2009, 02:59:53 am
I have decoded Discs of Tron (Stand-up) and (Environmental).  The attached zip file includes the NV files from both dotron and dotrone as well as the C# games files to support them.

For some reason zip files do not work on this forum, I'll PM you with my e-mail address.

You can use Opera only to download the attachments.
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: zallax on July 07, 2009, 12:54:22 pm
Just sent ya a C# file for Tron.  ;D
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: RoadRunn on July 14, 2009, 04:13:07 pm
I have 2 things.

First I think I have the nv decoded for "narc". I don't have a cs file yet as I am still trying to understand all of the format. Would you want my analysis of the nv file, or wait until I have a cs file?

Second I have modified your code to add an "Erase" flag that will zero out the current scores and safe the file. This is needed if you wanted to rewrite the entire highscore table for a game instead of just adding a single new score entry. Would you like a patch, or just a description of the feature request that you can implement your own way?
Title: Re: HiToText (Version 2009.7.01.0) and GHOST Coming soon...
Post by: Fyrecrypts on July 14, 2009, 04:55:18 pm
I have 2 things.

First I think I have the nv decoded for "narc". I don't have a cs file yet as I am still trying to understand all of the format. Would you want my analysis of the nv file, or wait until I have a cs file?

Second I have modified your code to add an "Erase" flag that will zero out the current scores and safe the file. This is needed if you wanted to rewrite the entire highscore table for a game instead of just adding a single new score entry. Would you like a patch, or just a description of the feature request that you can implement your own way?

First, welcome to the forums!

Second, feel free to take your time, it sounds like you already know C# well enough that there won't be a huge learning curve to learning how to create a HiToText game class. So it shouldn't take too much longer, and even if it does, no big deal. The more people writing classes the better. =)

Thirdly, feel free to shoot me an e-mail with the changes for an erase flag, and I'll go ahead and put them in (as long as it works. ;) ). It sounds like a useful tool, so it belongs in HiToText.
Title: Re: HiToText (Version 2009.7.14.0) and GHOST Coming soon...
Post by: Fyrecrypts on July 14, 2009, 05:23:46 pm
New version out!

Bug fixes:
1942 got a major overhaul to bring it inline with current games, i.e. work correctly when submitting scores. (Fyrecrypts)
Added clones ark1ball, amidars, bzonec and swimmerb in hiscore.dat. (Cananas)
swimmerb is also added to hitotext. (Cananas)
Added riverpatrol (rpatrol) and clones (also the deleted rpatrolo) to hiscore.dat. (Cananas)
Fixed a little bug in robotron. (Cananas)
exprrada now works correctly. (Fyrecrypts)
kangaroo fixed by adding dna disturber's change in hiscore.dat

New Games:
Joust, Joust2, River Patrol, Crazy Rally, Head On, Head On 2 (Coded by Cananas)
Tron, Discs of Tron (Coded by Zallax)
Pooyan, Cabal, Toki (Coded by Fyrecrypts)


And a small note, you can always see what's new in new versions via the link to the what's new in the first post.
Title: Re: HiToText (Version 2009.7.14.0) and GHOST Coming soon...
Post by: RetroBorg on July 14, 2009, 05:28:18 pm
Excellent!
Title: Re: HiToText (Version 2009.7.14.0) and GHOST Coming soon...
Post by: Wob on July 15, 2009, 04:21:55 am
Good stuff, but the latest hiscore.dat file is missing on the server.

Cheers,
Wob
Title: Re: HiToText (Version 2009.7.14.0) and GHOST Coming soon...
Post by: Fyrecrypts on July 15, 2009, 09:55:58 am
Good stuff, but the latest hiscore.dat file is missing on the server.

Cheers,
Wob

Oops, think I would've noticed that one. It's fixed now, thank you. =)
Title: Re: HiToText (Version 2009.7.14.0) and GHOST Coming soon...
Post by: Fyrecrypts on July 20, 2009, 06:51:24 pm
Been a little side-tracked lately, as GHOST has started it's first alpha stage. It's not ready for a beta yet, but when it is, I'll be inviting the BYOAC crowd first. =)
Title: Re: HiToText (Version 2009.7.14.0) and GHOST Coming soon...
Post by: RetroBorg on July 21, 2009, 05:27:44 pm
Been a little side-tracked lately, as GHOST has started it's first alpha stage. It's not ready for a beta yet, but when it is, I'll be inviting the BYOAC crowd first. =)

Tell us more about GHOST.
Title: Re: HiToText (Version 2009.7.14.0) and GHOST Coming soon...
Post by: Fyrecrypts on July 21, 2009, 07:40:33 pm
Tell us more about GHOST.

I suppose I can say a little. GHOST is like an evolved HiScanner. For those who may not remember, HiScanner enabled hi scores to be shared online, so your buddy could beat your Pacman score in Finland, and I, in Oregon, could see his score, and try and beat it myself. HiScanner, while good on paper, failed. It was too difficult to install, and frankly it was far too easy for people to cheat. GHOST takes care of both of these problems (mostly).

GHOST requires a simple online registration at our site: www.arcadehiscore.com (You can't register here, but you can see actual submitted scores.) Then you download GHOST and away you go, pretty painlessly. We hinder cheating, but haven't been able to completely stop it yet. We're close. I can't exactly say how we do it yet though. A little too early to say.

There's much more to GHOST, however it's in such an early stage I don't want to reveal too much that may change, or may be impossible. =D
Title: Re: HiToText (Version 2009.7.14.0) and GHOST in closed alpha.
Post by: RetroBorg on July 22, 2009, 05:23:57 am
Sounds awesome Fyrecrypts.

Any chance any of these options will be available:

Produce a high score table where no initials are included twice.

Have the ability to form your own group, where just you and your friends can combine high score tables.

Thanks.

Retro

 
Title: Re: HiToText (Version 2009.7.14.0) and GHOST in closed alpha.
Post by: Fyrecrypts on July 22, 2009, 08:56:54 am
Sounds awesome Fyrecrypts.

Any chance any of these options will be available:

Produce a high score table where no initials are included twice.

Have the ability to form your own group, where just you and your friends can combine high score tables.

Thanks.

Retro

I hadn't thought of the first option, however it's a great idea, and I'll implement it! So it will be available!

The second option is something I've thought about, and is deeply ingrained into what GHOST is. You can create any number of groups, and invite any number of people. While using GHOST you can tell it which groups' scores you wish to see, and it will only pull down scores from people in those groups. Scores are attached to people, so if you left a group, scores you made would no longer be seen by anyone else pulling scores from that group. Group creation is something I'm working on now actually and will be in the next iteration of the Alpha.
Title: Re: HiToText (Version 2009.7.14.0) and GHOST in closed alpha.
Post by: RetroBorg on July 22, 2009, 09:02:37 am
Sounds awesome Fyrecrypts.

Any chance any of these options will be available:

Produce a high score table where no initials are included twice.

Have the ability to form your own group, where just you and your friends can combine high score tables.

Thanks.

Retro

I hadn't thought of the first option, however it's a great idea, and I'll implement it! So it will be available!

The second option is something I've thought about, and is deeply ingrained into what GHOST is. You can create any number of groups, and invite any number of people. While using GHOST you can tell it which groups' scores you wish to see, and it will only pull down scores from people in those groups. Scores are attached to people, so if you left a group, scores you made would no longer be seen by anyone else pulling scores from that group. Group creation is something I'm working on now actually and will be in the next iteration of the Alpha.

Excellent.
Title: Re: HiToText (Version 2009.7.14.0) and GHOST in closed alpha.
Post by: MKChamp on July 28, 2009, 05:14:59 pm
I figured I'd post here since there is a lot of work also done to get the hiscore.dat file in shape. I made a change to the hiscore.c file to get the cinemat.c games working. Not sure how much of an interest there is to get those supported, but they work now with the current hiscore.dat file. I re-uploaded hi_133 with the change...
Great work, btw!
Title: Re: HiToText (Version 2009.7.14.0) and GHOST in closed alpha.
Post by: Cananas on July 28, 2009, 05:33:00 pm
Uau!!! that's speed... Thank you MKChamp.

Not the best games, but... they are part of the history of arcade games.

I will check this weekend.

I have emailed to Leezer and Firecrypts.
Title: Re: HiToText (Version 2009.7.14.0) and GHOST in closed alpha.
Post by: Fyrecrypts on July 28, 2009, 07:02:49 pm
I figured I'd post here since there is a lot of work also done to get the hiscore.dat file in shape. I made a change to the hiscore.c file to get the cinemat.c games working. Not sure how much of an interest there is to get those supported, but they work now with the current hiscore.dat file. I re-uploaded hi_133 with the change...
Great work, btw!

Very nice, thank you!
Title: Re: HiToText (Version 2009.7.14.0) and GHOST in closed alpha.
Post by: Cananas on July 30, 2009, 06:40:35 am
I figured I'd post here since there is a lot of work also done to get the hiscore.dat file in shape. I made a change to the hiscore.c file to get the cinemat.c games working. Not sure how much of an interest there is to get those supported, but they work now with the current hiscore.dat file. I re-uploaded hi_133 with the change...
Great work, btw!

Tested and it works OK for me.
Title: Re: HiToText (Version 2009.7.14.0) and GHOST in closed alpha.
Post by: Fyrecrypts on July 31, 2009, 05:21:26 pm
I'm looking for a few more testers for GHOST, if you'd like to try it out, send me a PM.
Title: Re: HiToText (Version 2009.8.4.0) and GHOST in closed alpha.
Post by: Fyrecrypts on August 04, 2009, 10:53:20 am
-------------------
Version 2009.8.4
-------------------
Bug fixes:
Mappy was fixed so that the top hi score code would display correctly in-game. (Fyrecrypts)
Marble madness was also fixed to work correctly when submitting scores. (Fyrecrypts)
Crazy Kong had some minor tweaks to work correctly with blank spaces in the name fields. (Fyrecrypts)
Games using the cinemat.c driver were fixed to work with hiscore.dat again, you need MKChamp's hiscore patch from 0.133 or later to use (Cananas/MKChamp)

New features:
Erase feature which will erase all scores from that game's .hi file. This makes it much easier to replace scores when the scores you want to replace are less than existing scores. (RoadRunn)

New Games:
Narc, U.N. Squadron/Area 88 (Coded by RoadRunn)
Ajax, Q*Bert, Mortal Kombat, Armor Attack, Boxing Bugs, Rip Off, Speed Freak, Star Castle, Tailgunner (Coded by Cananas)
Title: Re: HiToText (Version 2009.8.5.0) and GHOST in closed alpha.
Post by: Fyrecrypts on August 05, 2009, 11:13:39 am
-------------------
Version 2009.8.5
-------------------
New Games: Barrier, Batsugun, Battlecry, Chase H.Q., Demon, Pengo, QB-3, Solar Quest, Sundance, War of the Worlds (Coded by Cananas)
Title: Re: HiToText (Version 2009.8.5.0) and GHOST in closed alpha.
Post by: Cananas on August 05, 2009, 12:08:47 pm
-------------------
Version 2009.8.5
-------------------
New Games: Barrier, Batsugun, Battlecry, Chase H.Q., Demon, Pengo, QB-3, Solar Quest, Sundance, War of the Worlds (Coded by Cananas)


If you have one of these games, please, first, make a copy of the hi-scores during the game  before you update the hiscore.dat. All those games have changes in the hiscore.dat file so the previous hi file is not valid.
Title: Re: HiToText (Version 2009.8.5.0) and GHOST in closed alpha.
Post by: Cananas on August 07, 2009, 12:34:25 pm
I want to ask all of you how we are going to manage all those renames done in 0.133u1 version of Mame.

I would prefer delete the old ones to preserve a clean source code in HiTotext and hiscore.dat, even if that means that people not using the last mame version can't save hi scores on some clone games.

Title: Re: HiToText (Version 2009.8.5.0) and GHOST in closed alpha.
Post by: Fyrecrypts on August 07, 2009, 12:48:06 pm
I want to ask all of you how we are going to manage all those renames done in 0.133u1 version of Mame.

I would prefer delete the old ones to preserve a clean source code in HiTotext and hiscore.dat, even if that means that people not using the last mame version can't save hi scores on some clone games.

I thought about this, and while it's not clean, it would allow the most people to continue to save hi scores, and use HiToText. Just adding all the new names to the existing games would solve the problem. Yeah you'll have trackfldc in addition to the old trackflc, but it's minor IMO to allowing people to use older versions of MAME. I think I probably will wait until 0.134 though to do it, as these names are liable to change.
Title: Re: HiToText (Version 2009.8.5.0) and GHOST in closed alpha.
Post by: Invincer on August 07, 2009, 02:31:51 pm
I have been trying to figure this out, but I keep running into something weird and even Firecrypt had no idea why this happens. When Hi scores enabled and the exe in HS folder, This pops up on my wheel when I scroll to a Hi score related game. Funny thing is I installed on a second computer and have the exact same problem... ??? Any one have any ideas on how to fix this? Noone else has had this problem?
Title: Re: HiToText (Version 2009.8.5.0) and GHOST in closed alpha.
Post by: Fyrecrypts on August 07, 2009, 02:40:49 pm
Aha, I think I figured it out. HiToText does make calls to MAME, to determine what version your score files would be in (currently only for Track and Field). It will run anything in your mame.exe folder that is an exe and has the word mame in it. I'll bet you have a self-extracting file in the same folder as mame.exe named mame0133.exe or something like that.

This is a bug, and I'll need to fix it in HiToText, in the meantime, take that file out of your folder.
Title: Re: HiToText (Version 2009.8.5.0) and GHOST in closed alpha.
Post by: Invincer on August 07, 2009, 03:02:41 pm
Thanks Firecrypt. Having it happen on both computers when no one else posted about it got me to thinking, it had to be something unique about my situation... Found it (finally)! There was no mame.exe in the folder at all... When I compiled mine I did it for a dual core and it named it vmame.exe, not mame.exe. So I have been using vmame.exe and mapping eveything to that in the settings. I just named vmame to mame, remapped settings in HS, and voila... it works! You are probably right as to why it did what it did. I have a few other exe files in the mamefolder, and I bet it was latching onto one of them since it did not see mame.exe :)

Now that I have it running in HS... it looks pretty cool, and blends in with the themes (unlike other FEs); great job...

Two quick questions? 1, can I edit how big the font text is? It bleeds over off the side of the screen on some scores. and 2, does it work with hyperlaunch yet? I have other things running which need Hyperlaunch like the script for the betabrite display and the script in Hyperlaunch which shows control panel and cabinet pictures on 2nd screen when in MAME games.

Thanks again!!
Title: Re: HiToText (Version 2009.8.5.0) and GHOST in closed alpha.
Post by: Fyrecrypts on August 07, 2009, 03:08:50 pm
Thanks Firecrypt. Having it happen on both computers when no one else posted about it got me to thinking, it had to be something unique about my situation... Found it (finally)! There was no mame.exe in the folder at all... When I compiled mine I did it for a dual core and it named it vmame.exe, not mame.exe. So I have been using vmame.exe and mapping eveything to that in the settings. I just named vmame to mame, remapped settings in HS, and voila... it works! You are probably right as to why it did what it did. I have a few other exe files in the mamefolder, and I bet it was latching onto one of them since it did not see mame.exe :)

Now that I have it running in HS... it looks pretty cool, and blends in with the themes (unlike other FEs); great job...

Two quick questions? 1, can I edit how big the font text is? It bleeds over off the side of the screen on some scores. and 2, does it work with hyperlaunch yet? I have other things running which need Hyperlaunch like the script for the betabrite display and the script in Hyperlaunch which shows control panel and cabinet pictures on 2nd screen when in MAME games.

Thanks again!!

It actually will work as vmame.exe however it's looking for anything with mame in alphabetical order, so it's probably finding mame.exe before it finds anything else, glad you got it working!

I don't believe you can edit the text size in HyperSpin. I'm not sure if this is something Bill has in the works, but you can always ask on the Hyperspin forums.

As far as I know it still doesn't work with Hyperlaunch, there's nothing I can do about that though. Hyperlaunch does not close MAME correctly apparently, and so no .hi files are ever saved. I may be wrong though, and this may have been fixed. If it has, I need to update my instructions on the HyperSpin boards. You can technically run HiToText with Hyperlaunch on, but none of your scores will ever update.
Title: Re: HiToText (Version 2009.8.5.0) and GHOST in closed alpha.
Post by: Cananas on August 07, 2009, 05:12:33 pm
Next to come, completely new in hiscore.dat:
Code: [Select]
nmouse:
nmouseb:
0:4e88:03:00:00
0:43ed:06:40:40
0:43d4:01:48:48 ; "H" letter from "HIGH SCORE" used as checkbyte

woodpeck:
woodpeca:
0:4e88:03:00:00
0:43ed:06:40:40
0:43d4:01:48:48 ; "H" letter from "HIGH SCORE" used as checkbyte

Title: Re: .hi file conversion.
Post by: Fyrecrypts on August 10, 2009, 12:02:29 pm
Next to come, completely new in hiscore.dat:
Code: [Select]
nmouse:
nmouseb:
0:4e88:03:00:00
0:43ed:06:40:40
0:43d4:01:48:48 ; "H" letter from "HIGH SCORE" used as checkbyte

woodpeck:
woodpeca:
0:4e88:03:00:00
0:43ed:06:40:40
0:43d4:01:48:48 ; "H" letter from "HIGH SCORE" used as checkbyte


Nice! Thanks Cananas!
Title: Re: HiToText (Version 2009.8.5.0) and GHOST in closed alpha.
Post by: Fyrecrypts on August 25, 2009, 06:00:48 pm
Next version may take a while, as I've decided to try and reduce the size of the project by combining a lot of similar code. Each driver is to be changed to use the new functionality whenever possible. I've probably spent about 3 hours converting 6 drivers so far. I may just release a version that has some drivers using the old style, and some using the new as HiToText will still work using the old method.

This will make writing new drivers take much less time. So hopefully by spending a lot of time on it now, we can save a lot of time on it later.

I've posted what the new 10yard driver looks like so you can all get a good comparison of how different it really is.
Code: [Select]
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Runtime.InteropServices;
using HiToText;

namespace HiGames
{
    // Only the Top 10 are shown during the game
    class _10yard : Hiscore
    {
        [StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Ansi)]
        public struct HiscoreData
        {
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score1;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name1;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score2;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name2;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score3;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name3;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score4;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name4;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score5;       
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name5;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score6;       
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name6;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score7;       
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name7;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score8;       
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name8;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score9;       
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name9;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score10;       
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name10;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score11;       
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name11;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score12;       
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name12;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score13;       
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name13;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score14;       
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name14;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score15;       
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name15;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score16;     
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name16;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score17;       
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name17;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score18;       
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name18;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score19;       
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name19;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score20;       
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name20;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score21;       
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name21;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score22;       
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name22;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Score23;       
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] Name23;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
            public byte[] TopScore;
        }

        public Formatting.Mapping mapping = new Formatting.Mapping();
        public Formatting.StringFormatFlag format =
            Formatting.StringFormatFlag.NeedsSpecialMapping |
            Formatting.StringFormatFlag.ASCIIStandard;

        public _10yard()
        {
            m_numEntries = 23;
            m_format = "RANK|SCORE|NAME";
            m_gamesSupported = "10yard,10yardj,vs10yard,vs10yarj";
            m_extensionsRequired = ".hi";

            mapping.AddMapping('.', 0x5b);
            mapping.AddMapping(' ', 0x5c);
        }

        public string ConvertName(byte[] name)
        {
            return Formatting.ByteArrayToString(name, mapping, format);
        }

        public byte[] ConvertName(string name)
        {
            return Formatting.StringToByteArray(name, mapping, format);
        }

        public byte[] ConvertScore(string score)
        {
            return HiConvert.ReverseByteArray(HiConvert.IntToByteArrayHex(Convert.ToInt32(score), 3));
        }

        public override void SetHiScore(string[] args)
        {
            //int rankGiven = Convert.ToInt32(args[0]);
            int score = System.Convert.ToInt32(args[1]);
            string name = args[2];

            HiscoreData hiscoreData = (HiscoreData)HiConvert.RawDeserialize(m_data, 0, typeof(HiscoreData));
            Regex rxScore = new Regex("^Score.*$");
            Regex rxName = new Regex("^Name.*$");

            //Determining rank.
            int rank = Formatting.DetermineRank(
                score, rxScore, hiscoreData, Formatting.DetermineScores.DetermineScoreReversed);

            //Adjusting lower scores.
            List<Regex> adjusters = new List<Regex>(new Regex[] { rxScore, rxName });
            hiscoreData = (HiscoreData)Formatting.AdjustScores(rank, hiscoreData, adjusters);

            //Replacing new scores.
            List<Formatting.Placement> placements = new List<Formatting.Placement>();
            placements.Add(new Formatting.Placement(name, rxName, ConvertName));
            placements.Add(new Formatting.Placement(score.ToString(), rxScore, ConvertScore));
            placements.Add(new Formatting.Placement(score.ToString(), new Regex("^TopScore$"), true, ConvertScore));

            hiscoreData = (HiscoreData)Formatting.ReplaceNew(rank, hiscoreData, placements);

            byte[] byteArray = HiConvert.RawSerialize(hiscoreData);

            HiConvert.ByteArrayCopy(m_data, byteArray);
        }

        //public override void ModifyName(int rank, string name)
        public void ModifyName(int rank, string name)
        {
            HiscoreData hiscoreData = (HiscoreData)HiConvert.RawDeserialize(m_data, 0, typeof(HiscoreData));

            List<Formatting.Placement> placements = new List<Formatting.Placement>();
            placements.Add(new Formatting.Placement(name, new Regex("^Name.*$"), ConvertName));

            hiscoreData = (HiscoreData)Formatting.ReplaceNew(rank - 1, hiscoreData, placements);

            byte[] byteArray = HiConvert.RawSerialize(hiscoreData);

            HiConvert.ByteArrayCopy(m_data, byteArray);
        }

        public override void EmptyScores()
        {
            HiscoreData hiscoreData = (HiscoreData)HiConvert.RawDeserialize(m_data, 0, typeof(HiscoreData));

            //We also want to get the top score and empty that.
            hiscoreData = (HiscoreData)Formatting.EmptyScores(hiscoreData, new Regex("^.*Score.*$"), ConvertScore);

            byte[] byteArray = HiConvert.RawSerialize(hiscoreData);

            HiConvert.ByteArrayCopy(m_data, byteArray);

            SaveData();
        }

        public override string HiToString()
        {
            string retString = m_format + Environment.NewLine;

            HiscoreData hiscoreData = new HiscoreData();
            hiscoreData = (HiscoreData)HiConvert.RawDeserialize(m_data, 0, typeof(HiscoreData));

            List<Formatting.DisplayData> formatting = new List<Formatting.DisplayData>();
            formatting.Add(new Formatting.DisplayData(null, Formatting.DisplayData.CannedConvert.AscendingFrom1));

            //We only want the top 10 scores, since that's all that's shown in-game.
            formatting.Add(new Formatting.DisplayData(
                new Regex("^Score[1-9]$|^Score10$"), Formatting.ConvertValuesToString.ConvertScoreReversed));

            //Only want the top 10 names too.
            formatting.Add(new Formatting.DisplayData(new Regex("^Name[1-9]$|^Name10$"), ConvertName));

            retString += Formatting.HiToString(hiscoreData, formatting);

            return retString;
        }
    }
}
Title: Re: HiToText (Version 2009.8.5.0) and GHOST in closed alpha.
Post by: Fyrecrypts on September 01, 2009, 03:20:23 pm
-------------------
Version 2009.9.1
-------------------
New Games:
Woodpecker, Naughty Mouse, Journey, Tapper, Timber, Domino, Mortal Kombat 2, Berzerk (Coded by Cananas)
19xx (Coded by Fyrecrypts)

Bug Fixes:
1943 was fixed to display all name characters correctly. (Fyrecrypts)
Altered Beast sets the alternate ranks correctly now. (Fyrecrypts)
10 Yard Fight only displays the top 10 scores now, as it is done in-game like this as well. (Fyrecrypts)
1941 only displays the top 5 scores now, as it is done in-game like this as well. (Fyrecrypts)

New features:
Drivers starting with # or A have been modified to use a more generic set of methods that reduces the amount of code used. This will also reduce the time it takes to add new drivers. (Fyrecrypts)
Certain drivers now inherit parent drivers that are similiar, but cannot be contained in that driver because the file is setup differently, or it is a separate game (i.e. Tapper and Timber have Journey as their parent.) (Cananas)
Drivers starting with # or A have new functionality to allow the modification of current score's names. If you mess up an initial, you can now just modify it! Use -m <romname> <rank> <name> to replace the name. NOTE: This is not implemented fully yet, only #-A will work. (Cananas, Fyrecrypts)
Title: Re: HiToText (Version 2009.9.1.0) and GHOST in closed alpha.
Post by: Cananas on September 01, 2009, 05:17:31 pm
Well, more to learn... ;)
Title: Re: HiToText (Version 2009.9.1.0) and GHOST in closed alpha.
Post by: ryantheleach on September 02, 2009, 12:47:39 pm
Hey I'm interested in helping out, what games are left to do?
do I need to be any good at the games to beat the default high scores?
Title: Re: HiToText (Version 2009.9.1.0) and GHOST in closed alpha.
Post by: Fyrecrypts on September 04, 2009, 07:17:59 pm
Hey I'm interested in helping out, what games are left to do?
do I need to be any good at the games to beat the default high scores?

Check this post out:

http://forum.arcadecontrols.com/index.php?topic=83614.msg963047#msg963047

Hopefully this will help you help us! Glad to see you're interested. =)
Title: Re: HiToText (Version 2009.9.16.0) and GHOST in closed alpha.
Post by: Fyrecrypts on September 16, 2009, 10:52:26 am
-------------------
Version 2009.9.16
-------------------
New Games:
Block Out, Break Thru, Cleopatra Fortune, Dazzler, Dead Eye (Meadows), Dyna Gear, Lunar Rescue, Mad Alien, Megadon (Cananas)
Mighty Monkey, Missile Command, Metal Slug - Super Vehicle-001, Metal Slug 2 - Super Vehicle-001/II, Metal Slug 3, Metal Slug 4 (Cananas)
Metal Slug 5, Metal Slug X - Super Vehicle-001, Martial Champion, Michael Jackson's Moonwalker, Naughty Boy, Nemesis (Cananas)
Nova 2001, Oli-Boo-Chu, Omega Fighter, Q*Bert's Qubes, Star Wars, Streaking, Subroc-3D, Boomer Rang'r, Evil Stone (Cananas)
Pirates, Red Baron, Sprint 1 (Cananas)

Bug Fixes:
Fix to Asteroids Deluxe that was introduced when the new coding techniques were used. (Cananas)
Clones added to 8-Ball Action (Cananas)
Many changes to hiscore.dat, view the hiscore.dat-astic to see them. (Cananas & Fyrecrypts)
Beginning transition to MAME 0.134 naming convention for hiscore.dat. Older clones are commented with "; old" (Cananas)

As you can see another huge contribution from Cananas. I am going to (once again) be short on time, my wife and I are expecting our daughter any time now, and that means no time for projects. However, I think the updates will still continue as Cananas has been tearing it up producing more and more deciphered games.

As always, enjoy!
Title: Re: HiToText (Version 2009.9.16.0) and GHOST in closed alpha.
Post by: wwwombat on October 07, 2009, 08:26:27 pm
Many changes to hiscore.dat, view the hiscore.dat-astic to see them. (Cananas & Fyrecrypts)
Beginning transition to MAME 0.134 naming convention for hiscore.dat. Older clones are commented with "; old" (Cananas)

Been away for a couple of months... combination of real life and because I'm rejigging my cabinet yet again... anyhoo, it's coming back to life so I thought I'd catchup to MAME 0.134 level and at the same time update the auxiliary files like HiToText.

I see you now generate the version of hiscore.dat through a link... however when I do so and peek inside I fail to see any hook for Track & Field (which is the game that caused me the pain due to a shift in how what MAME stored)... some recent additions also don't seem to be there (i.e. the Metal Slugs apart from two of them)

Is this still a "work in progress" (due to 0.134?) and I should check back later or is there a bug in the extraction process?
Title: Re: HiToText (Version 2009.9.16.0) and GHOST in closed alpha.
Post by: Fyrecrypts on October 07, 2009, 10:47:12 pm
Many changes to hiscore.dat, view the hiscore.dat-astic to see them. (Cananas & Fyrecrypts)
Beginning transition to MAME 0.134 naming convention for hiscore.dat. Older clones are commented with "; old" (Cananas)

Been away for a couple of months... combination of real life and because I'm rejigging my cabinet yet again... anyhoo, it's coming back to life so I thought I'd catchup to MAME 0.134 level and at the same time update the auxiliary files like HiToText.

I see you now generate the version of hiscore.dat through a link... however when I do so and peek inside I fail to see any hook for Track & Field (which is the game that caused me the pain due to a shift in how what MAME stored)... some recent additions also don't seem to be there (i.e. the Metal Slugs apart from two of them)

Is this still a "work in progress" (due to 0.134?) and I should check back later or is there a bug in the extraction process?

Those games are all nvram-only, so they grab scores from the nvram all MAME builds generate, so there's no need for a .hi file to be generated. The hiscore.dat-astic is as up to date as can possibly be, so feel free to use it. There's a date at the top of the file that is the last updated date as well.
Title: Re: HiToText (Version 2009.9.16.0) and GHOST in closed alpha.
Post by: wwwombat on October 08, 2009, 02:12:05 am
nv-ram only... ah, that explains it. Thanks! Will have to get my cabinet back to operating status so I can check it out then.
Title: Re: HiToText (Version 2009.9.16.0) and GHOST in closed alpha.
Post by: Cananas on October 08, 2009, 10:23:37 am
Been busy with the AimTrak, so I'm updating the hiscore.dat to 0.134 slowly...
Title: Re: HiToText (Version 2009.9.16.0) and GHOST in closed alpha.
Post by: Fyrecrypts on October 08, 2009, 12:50:16 pm
Been busy with the AimTrak, so I'm updating the hiscore.dat to 0.134 slowly...

I've been busy with my new daughter, so I'm not going to be working on it very much either for a while. GHOST as well hasn't been worked on because of it.
Title: Re: HiToText (Version 2009.9.16.0) and GHOST in closed alpha.
Post by: axewater on October 30, 2009, 09:20:16 am
Hi .. great project

I work in IT security and you will probably agree there will not ever be a way to completely eliminate cheating if there is some form of online sharing of scores. However there are a lot of things that can be done to make it hard on cheaters, and I would be happy to help you think of a good solution...
Let me know if there is something I can do to help, best not to discuss the workings of all the security features in an open forum :)
Title: Re: HiToText (Version 2009.9.16.0) and GHOST in closed alpha.
Post by: headkaze on October 30, 2009, 11:33:18 pm
I think Fyrecrypts is more interested in how to "secure" nappies to his newly born daughter  ;D

But I'm sure when things settle down a bit he will come back to the project and have a bit more time. So perhaps it would be best to PM him? I know him and a friend were working on security features and it's a definate concern of the project.
Title: Re: HiToText (Version 2009.9.16.0) and GHOST in closed alpha.
Post by: Fyrecrypts on January 15, 2010, 02:50:01 pm
Coming soon...

Code: [Select]
<?xml version="1.0" encoding="utf-8"?>
<HiToText>
  <Entry>
    <Header>
      <Games>
        <Name>baddudes</Name>
        <Name>drgninja</Name>
      </Games>
      <Fields>
        <Name>RANK</Name>
        <Name>SCORE</Name>
        <Name>NAME</Name>
        <Name>STAGE</Name>
      </Fields>
      <Extensions>
        <Name>.hi</Name>
      </Extensions>
      <TextParameters>
        <Formats>
          <Name>ASCIIStandard</Name>
        </Formats>
      </TextParameters>
    </Header>
    <FileStructure>
      <Mapping NumberOfBlocks="20" Ordering="Ascending">
        <Entry Name="Name" Length="3"/>
        <Entry Name="Score" Length="4"/>
        <Entry Name="Stage" Length="1"/>
      </Mapping>
      <Mapping NumberOfBlocks="1" Ordering="None">
        <Entry Name="HiScore" Length="4"/>
      </Mapping>
    </FileStructure>
    <DisplayStructure>
      <FieldName Name="RANK" ConversionType="CannedDisplay.AscendingFrom1"/>
      <FieldName Name="SCORE" ConversionType="Standard"/>
      <FieldName Name="NAME" ConversionType="Name"/>
      <FieldName Name="STAGE" ConversionType="Standard"/>
    </DisplayStructure>
  </Entry>
</HiToText>
Title: Re: HiToText (Version 2009.9.16.0) and GHOST in closed alpha.
Post by: headkaze on January 15, 2010, 06:21:41 pm
LOL Coming full circle are we? The data file was something we talked about very early on in this project. I take it this is only an update for HiToText and not something that will be implemented in the software that utilise HiToText?

Oh and welcome back hope everything is well with your new addition to the family :)
Title: Re: HiToText (Version 2009.9.16.0) and GHOST in closed alpha.
Post by: Fyrecrypts on January 15, 2010, 06:59:29 pm
LOL Coming full circle are we? The data file was something we talked about very early on in this project. I take it this is only an update for HiToText and not something that will be implemented in the software that utilise HiToText?

Oh and welcome back hope everything is well with your new addition to the family :)

Yeah, I started to condense everything in the drivers to utilize broader functions through the use of delegates, and realized the need for individual drivers was really only a glorified map, so I just moved it out to an XML document. The sample above is very simplified of course, and as more games get implemented in this way, more mappings will need to be created, some custom code added, etc...

But, for those simpler games that I may not have gotten around to, there's now a very easy way for the non-coders to contribute a complete "driver"! Fun stuff. =)
Title: Re: HiToText (Version 2009.9.16.0) and GHOST in closed alpha.
Post by: Fyrecrypts on January 20, 2010, 10:25:06 pm
Got a couple of drivers moved over to the new format, but it's still in a preliminary format. I'm allowing for both the individual drivers, and the XML because of this. The XML driver will take precedence however. I'll probably release a version in the next couple of weeks so that people can get started on decoding drivers using the new format. In addition, a bit down the road, I'd like to create a GUI that will help generate the XML when you give it a .hi file and allow for decoding. This would make decoding a .hi/.nvram file much easier.
Title: Re: HiToText (Version 2009.9.16.0) and GHOST in closed alpha.
Post by: Fyrecrypts on January 26, 2010, 05:24:02 pm
Let me preface this whole thing by saying, I have no idea how to format this information well, so it may be a little tough on the eyes, and possibly a little confusing. I'll do my best to ask questions if you've read multiple times and still have no answer. =)

First, this is a link to the XML file: http://www.the-elitists.com/HiToText/HiToText.xml (http://www.the-elitists.com/HiToText/HiToText.xml)
Put this in the same folder as HiToText.exe

So, here's a small tutorial on the XML format. I've added about a dozen drivers to this thing so far, and it works very well. Bagman for example took about 3 minutes to add. In the near future I do plan on making some sort of application that will generate the XML for you, but for now you can manually do it.

The first thing to know is what's currently in it's own class now is separated as entries in the XML. So you can see there are 15 entries in the file I've included here. Each entry element always has 4 elements: Header, FileStructure, SetStructure, and DisplayStructure. Order does not matter.

The header element contains 3 required elements: Games, Fields, and Extensions and one optional element: TextParameters. Order does not matter.

Games is a list of Name elements where each element is the rom name which corresponds to the mapping. Order does not matter.

Fields is a list of Name elements where each element is a field displayed. The order matters here, so put them in the order in which you'd like to see it displayed.

Extensions is a list of Name elements where each element is a file type associated with the data you're receiving. Of the 15 entries I have here, all of them just contain .hi, however later some will contain .nv, and possibly others. Order does not matter.

TextParameters is used to describe getting text information, mostly for name fields (so far), and contains 1 required entry: Formats (if TextParameters exists), 2 potentially required entries: SpecialMapping, and Offsets, which depends on which Format elements exist, and 1 optional entry: SwitchMaps. Order does not matter.

Formats contains a list of Name elements that correspond to one of (currently) 5 possible formats: NeedsSpecialMapping, ASCIIUpper, ASCIILower, ASCIINumbers, ASCIIStandard. For anyone who looked at the older code and saw some of the changes I was making will recognize these 5 formats. NeedsSpecialMapping will require the SpecialMapping element. ASCIIUpper, ASCIILower, and ASCIINumbers will require the Offsets element. ASCIIStandard requires nothing. These 5 formats will be explained below. Order does not matter.

SpecialMapping is a list of mappings with characters to bytes, these are Map elements with two required attributes Char, and Byte where char is a character (only one key allowed here), byte is the byte that it would map too. You can have multiple bytes assigned to a char, but not the other way around, and HiToText will always use the first value assigned to a character when there are multiple options.

Offsets is a list of Offset elements with two required attribtes: Type, and StartByte. Type corresponds to the format element earlier, and can only be one of 3 values: Upper, Lower, and Numbers. StartByte is the byte for which a, A, or 0 will start at when being encoded/decoded in any function involving names. You need an Offset element for each of the 3 ASCII formats mentioned earlier. Order does not matter.

SwitchMaps is a list of SwitchMap elements that are used for special "switch" functions such as mapping the characters in Asterix. I would take a look at that entry for an example as what I'm about to say may be a bit confusing... here goes. Each SwitchMap has 3 required attributes: Name, DefaultOne, and DefaultMany. The switchmaps use a one to many relationship so you can have many strings mapped to one byte array. The Default attributes are if nothing can be found matching your Mapping elements within the current SwitchMap element. If multiple bytes are required for the byte array they can be separated by pipes. (i.e. 0x01|0x02). The name element must match the Name attribute (case insensitive) of the FieldName element in DisplayStructure that is using the Switch ConversionType attribute. (Asterix is an example of this)

Each SwitchMap has multiple Mapping elements, that have 2 attributes: One, and Many. One is a byte array, and many is a string. They work just like the default elements except these are checked first, so if a switch function (explained a bit later) is looking for the byte that corresponds to the string "ASTERIX" it will search the mappings first and find 0x01 before it goes to the DefaultOne. The Many fields are NOT case sensitive, so if you wish for them to be displayed differently, or as was requested a web address to an image or something for a FE to use, then go for it. I prefer all caps, so that's how the file will look. =)

Okay, now that we're done with the Header element, I'd like to note that a lot of what's in the header will relate to what's in the other three elements as well.

The FileStructure element is where the byte mapping actually is stored, it contains only mapping elements, and may contain as many as required to fully define each of the bytes in the source file.

The Mapping element contains 2 required attributes: NumberOfBlocks, and Ordering, and 1 optional attribute: Start. NumberOfBlocks is the number of times to go through the Entry elements of that particular Mapping element. I'll provide an example shortly that should explain that better. The Ordering attribute determines the numerical increment/decrement that will occur as you go through each block. Start is the number to start with when going through ordering.

Each entry has 2 required elements: Name, and Length. Name is the name that will be used for many other portions of the XML from setting scores, to reading scores, and will need to be the same as names for those other elements which will be explained a little later. Length is the number of bytes that make up that entry. These names ARE case sensitive, so be careful!

If none of that made sense, hopefully this example from arkretrn helps:
Code: [Select]
<FileStructure>
  <Mapping NumberOfBlocks="5" Ordering="Ascending">
    <Entry Name="Score" Length="4"/>
  </Mapping>
  <Mapping NumberOfBlocks="4" Ordering="Ascending">
    <Entry Name="Name" Length="3"/>
    <Entry Name="Space" Length="1"/>
  </Mapping>
  <Mapping NumberOfBlocks="1" Ordering="Ascending" Start="5">
    <Entry Name="Name" Length="3"/>
  </Mapping>
</FileStructure>

So when HiToText goes to read the .hi file (in this case) it will start with the first map, and it sees an ascending mapping of 5 blocks that are called Score of 4 bytes each. So the first 20 bytes make up the first 5 scores(Score1, Score2, Score3, Score4, Score5). Then it will move to the next mapping, which is 4 blocks of ascending order containing two entries: Name, and Space. So it will read the next 16 bytes as (Name1, Space1, Name2, Space2, Name3, Space3, Name4, Space4). Then it will move to the last mapping, which is 1 block of ascending order that starts at 5 containing one entry: Name. So it will read the last 3 bytes as (Name5).

This is what HiToText will see for the mapping:
Score1 - Bytes 1-4
Score2 - Bytes 5-8
Score3 - Bytes 9-12
Score4 - Bytes 13-16
Score5 - Bytes 17-20
Name1  - Bytes 21-23
Space1 - Byte 24
Name2  - Bytes 25-27
Space2 - Byte 28
Name3  - Bytes 29-31
Space3 - Byte 32
Name4  - Bytes 33-35
Space4 - Byte 36
Name5  - Bytes 37-39

arkretrn.hi is 39 bytes so we have a complete map.

The DisplayStructure element is how HiToText determines how to display the scores when trying to display them. It has one optional element: NumOfDisplayedEntries which is a way to limit the amount of entries to display for scores. Currently only 10yard is using this as there are 23 scores/Names in the .hi file, however you only ever see 10. This number can be safely changed to anything from 1-23 (for 10yard) if you wish to see more or less than the 10 the game shows. The DisplayStructure element contains as many FieldName elements as required for display. Order matters, and the first FieldName will be the first value per line. The first FieldName is almost always going to be Rank.

The FieldName element has 2 required attributes: Name, and ConversionType, and 1 optional attribute: Operator.

Name is linked to the Name in the Entry elements in the FileStructure/Mapping element. So if you want to display Name, you better have Entry Name="Name", and FieldName Name="Name" in the appropriate place. Name also matches to the SwitchMap Name attribute if it exists.

ConversionType is the function used to convert the byte array data into a string, there are some constant values such as CanndedDisplay.AscendingFrom1 which just counts from 1 for that field (perfect for Rank). There are other conversion types such as Standard which converts the byte array as an integer, so 0x10 0x00 0x00 will come back as 100000. There are others: Reversed, Hex, HexReversed, BCD, BCDReversed which you can research in the code. There are also some custom one-off functions, in particular 8ballact has some custom functions for decoding/encoding scores. They should be named as the parent rom name, and if the rom starts with a number, put an underscore before the name. As you can see for 8ballact, it's _8ballact. Pretty easy. Name functions (if setup) should just use a conversion type of "Name".

Operator is a mathematical function used to modify the data for display. Usually it's something like "+1" or "*10" so the displayed data more correctly matches what the game would display instead of what the game stores. Often games will not store data with known values and display it with the assumed values. That's basically what this will do. For example, a game like 005 stores it's scores divided by 10, so when we read something like 0x02|0x50 it would normally display as 250, however the game would display that as 2500. So we have a "*10" operator to get it to display how the game would display it. This is used in conjunction with a similar field in SetStructure which will be explained later.

All right, now onto the most complicated... SetStructure. It contains as many FieldName elements as required to set a new score.

The FieldName element contains 4 required attributes: Name, FieldType, ConversionType, and Position, and 2 optional attributes: Constant, and ExternalWrapper. It can also contain as many SpecialUtilization elements as needed. These aren't required, but almost certainly will be needed to set something correctly.

Let's start with the attributes. Name is pretty self-explainatory at this point, but this is what links up with the header names, filestructure names, and display names, so be consistent here. FieldType is the type of the field, such as string, int, or long, etc... ConversionType is the method used to convert the data of type FieldType into a byte array to be placed in the file. These are usually constant functions such as IntToByteArrayHex which converts an integer 100000 into a byte array that corresponds with the length of the FileStructure/Mapping/Entry attribute's name. So for example our 100000 above would convert to a byte array of length 3 for 4dwarrio as 0x10|0x00|0x00. There are other methods such as IntToByteArrayHexAsHex, Name, or Switch. Custom names like those described for 8ballact can also be used here. Position is the position in the arguments array this field will be linked to. So for 4dwarrio, the score is in the 1 position (0 is the first position). So when you type HiToText -w 4dwarrio.hi 1 40000 NLA, the 1 is in the 0 position the 40000 is in the 1 position...

The two option attributes are used for other special situations, Constant is just a byte value that will be the value set for that particular fieldname. It's currently only used for ajax for the "Unknown" field that is always 0x11 for player created entries. The other attribute, ExternalWrapper, is mostly used for when a byte array needs to be reversed, or if some other functionality needs to occur, like ByteSwapping (not currently implemented, but will be soon). In all the examples, only ReverseByteArray is currently used or accepted.

The SpecialUtilization element can contain one of (currently) 6 values: EmptyScores, ModifyName, IsHiScore, DetermineRank, IsAdjusted, and IncomingModified. There can be more than one type special utilization per FieldName. Some of these types of elements also require that the SpecialUtilization have an attribute, which I'll get into shortly.

EmptyScores will flag a field for usage in the EmptyScores function which will 0 out the field. It's used mostly for Score, and HiScore fields, but can be used for stages, or coins, or whatever else.

ModifyName will flag a field for usage in the ModifyName function which will allow that field to have a name changed based on the rank given.

IsHiScore will flag a field as the HiScore entry for the SetScore function. Anything that you wish to only be changed when it's the top score should have this SpecialUtilization.

DetermineRank will flag a field as being the data used for determining how that value ranks against existing values. It requires an attribute of Function, which can be Standard, Reversed, Hex, etc... or a custom function named as described the other custom functions (i.e. _8ballact). Currently, only one field may have this SpecialUtilization, but it will be implemented to allow multiples soon.

IsAdjusted will flag a field as being adjustable when a new score comes in. Use this for anything where you want the data to move down a rank if a new score coming in is higher. Things like HiScores and Unuseds, or separators should NOT have this SpecialUtilization whereas things like Name, Round, and Score should.

IncomingModified will flag a field as needing to be modified before being used for anything else. It requires a function that is similar to the operator attribute. The function attribute should be "/10" or "*45" or something mathematical. Certain games save scores without a trailing 0, so 25,000 will be stored as 0x25|0x00 to save space. Using IncomingModified will abstract this from the user so they can type "HiToText -w 005.hi 25000" which is what the game will show, instead of 2500 which is what's actually stored.

I know this is a LOT of writing, so I don't expect everyone to read it, but if you really wish to dig into the XML format, you probably should look at some of it, or just play around with the existing entries so you can see how it all works. Enjoy! I will be putting out a new version (source too!) shortly after I post this message.
Title: Re: HiToText (Version 2010.1.28.0) and GHOST in limbo.
Post by: Fyrecrypts on January 28, 2010, 01:28:55 pm
The latest release includes a quick bug fix that enables HiToText to actually work. =)
Title: Re: HiToText (Version 2010.1.28.0) and GHOST in limbo.
Post by: Fyrecrypts on February 07, 2010, 04:34:57 pm
I'm porting over a LOT of existing games to the new XML format, once the existing easy ones get moved I'll start work on some of the more difficult concepts, like alternate scores, and multiple sources of input. If anyone wants to start decoding new games again, it should be MUCH easier to get them implemented now.
Title: Re: HiToText (Version 2010.2.10.0) and GHOST in limbo.
Post by: Fyrecrypts on February 10, 2010, 05:59:41 pm
-------------------
Version 2010.2.10
-------------------
Bug Fixes:
While moving bloodbro to the XML format, fixed the fact that the highest score field wasn't being updated. If writing a score required updating the highest score as well.
While moving boomrang to the XML format, fixed an issue with the byte mapping, which had an 11th score in the driver, but only 10 scores were saved in the hiscore.dat.
While moving bzone to the XML format, fixed an issue with the name functions, they did not capture Y or Z correctly.

New features:
Some additional XML schema information TextParameters has 3 new optional attributes.
ByteSkipAmount, which will have the text functions use the byte for every ByteSkipAmount. For example, if there are 6 bytes in the name field, however only 3 are used, a ByteSkipAmount value of 2 would use the 1st, 3rd, and 5th, or 2nd, 4th, and 6th bytes for the name function. The default value is 1.
ByteStart, which will allow the text function to start at a specific byte in the name array. For example, if there are 6 bytes in the name field, however only 3 are used and you wish to start at the 2nd byte, a ByteStart value of 1 would use the name functions on the 2nd, 4th, and 6th bytes. The default value is 0.
ByteSkipData, which will fill in the bytes that aren't used by the name function. This is only useful if you also use ByteSkipAmount > 1. Some games (batsugun) have specific values that need to be placed in the name bytes to show up correctly in-game. The default value is 0x00.
Some reorganization to the code structure, added a few new nested namespaces, moved some things around, etc... Just general cleanup.
New XML loader using autogenerated classes from an xsd schema. The schema is also included in the source zip. NOTE: This WILL change in the near future, so don't build code around it just yet.

New Games:
Exerion (Fyrecrypts and Cananas)
Title: Re: HiToText (Version 2010.2.24.0) and GHOST in limbo.
Post by: Fyrecrypts on February 24, 2010, 01:16:45 pm
-------------------
Version 2010.2.24
-------------------
Bug Fixes:
While moving carnival to the XML format, fixed the problem with the score and name being reversed when setting high scores.
Fixed an issue with games with no rank not being able to be ported to the XML system.
While moving crush to the XML format, fixed the problem with the score and name being reversed in the data mapping. This should work now.
While moving ddribble to the XML format, modified the month/day fields to one date field.

New features:
Added a new DisplayStructure/FieldName optional attribute called CustomName that hooks into the normal Name function, but some games (Nichibutsu games as an example) have some special features that don't completely with the standard Name functions.
Added a new Header/Extensions/Name semi-optional attribute called NumberOfBytes that allows you to specify the number of bytes you'll be reading for that file. This is a required attribute if you have more than one extension per entry (i.e. Centipede or Asteroids Deluxe).
Added some new functionality for SetStructure/FieldName attribute Position where if the fields are separated by pipes it will return data from both of those fields separated by pipes for use in setting this value. This is used mostly for things like checksums, and an example can be found in Asteroids Deluxe.
Added some new functionality for SetStructure/FieldName attribute ConverstionType where if the field is named CustomName it will utilize a special function for setting data that uses the name function in addition to data. The function called is a custom function that is named as the parent rom name (the top rom in the XML). An example can be found in Asteroids Deluxe.
Added a new SetStructure/FieldName/ConversionType element built in function called PadData. It takes two parameters in parenthesis, the first is the value the byte should be if the data is the padded value, the second is the first digit of the byte when it's not. A good example of this can be seen in cclimber for setting the high score.
Games that use the XML format are now labeled as such in the supported games list located here: http://spreadsheets.google.com/pub?key=r1aOWGSATauwVHbhlucsGWQ&output=html (http://spreadsheets.google.com/pub?key=r1aOWGSATauwVHbhlucsGWQ&output=html)

NOTE: Be sure to not just grab the HiToText.xml file, it will not work correctly with older versions of HiToText. I'm looking into having the custom functions be built into the XML as well, so that future versions will only require an updated XML.
Title: Re: HiToText (Version 2010.2.24.0) and GHOST in limbo.
Post by: Fyrecrypts on March 05, 2010, 10:36:00 am
Cananas has created some great documents that better show the new XML format for game entries. If you wish to write entries for games using this format, I highly recommend taking a look at them. They are much easier to follow than my forum posts. =)

Schematics: http://the-elitists.com/HiToText/Schematics.pdf (http://the-elitists.com/HiToText/Schematics.pdf)
Documentation: http://the-elitists.com/HiToText/HiToText%20XML%20Document.pdf (http://the-elitists.com/HiToText/HiToText%20XML%20Document.pdf)

I've also put these links in the main post. Thanks Cananas!
Title: Re: HiToText (Version 2010.2.24.0) and GHOST in limbo.
Post by: Fyrecrypts on April 22, 2010, 10:59:20 am
Quick note, I've moved everything onto hitotext.com, as opposed to the-elitists. If you find some things still pointing to the-elitists, please let me know.

New version coming soon (I actually have time to work on it! Hooray!)
Title: Re: HiToText (Version 2010.4.28.0) and GHOST (may go open beta).
Post by: Fyrecrypts on April 28, 2010, 01:32:42 pm
-------------------
Version 2010.4.28
-------------------
New Games:
APB - All Points Bulletin, Arabian Fight, Anteater, Animalandia Jr., Argus, Ark Area, Armed Formation, Armored Car, Assault (Fyrecrypts)

Bug Fixes:
Fixed an issue with dkong3 where setting scores wouldn't set the name field properly.
Fixed the problem with HiToText crashing if it couldn't find the HiToText.xml file.
Fixed the missing byte for score 5 in Arabian Fight. (hiscore.dat fix)
Fixed issue with the SpecialUtilization: IncomingModified affecting all data for every piece of data for that position. Argus is a good example of where this came up, the score is not needing to be adjusted before being updated, however the hi score needs to be divided by 10. Having IncomingModified on the hi score was also affecting the standard score.

New features:
Added some new functionality for SetStructure/FieldName/ConversionType for CustomName values. It now utilizes the FieldName/Name value which can be used to plug data in the right spot. This is useful for games like APB where the name data is split up among multiple field names.
Added some new functionality for DisplayStructure/FieldName for Name values. If separated by pipes they will be merged into a single field name before display based on the ConversionType. This is only useful for name fields right now. An example of how to use it can be seen in APB.
Modified the existing SetStructure/FieldName/ConversionType element built in function called PadData to now be called PadDataReverse. A new PadData has been created that is the reverse of what the old pad data was, but makes more sense to not be called reverse.
Title: Re: HiToText (Version 2010.2.24.0) and GHOST in limbo.
Post by: headkaze on April 28, 2010, 08:38:41 pm
If you find some things still pointing to the-elitists, please let me know.

How about your sig?  ;D
Title: Re: HiToText (Version 2010.2.24.0) and GHOST in limbo.
Post by: Fyrecrypts on April 28, 2010, 09:20:39 pm
If you find some things still pointing to the-elitists, please let me know.

How about your sig?  ;D

Ha! Good find. =)
Title: Re: HiToText (Version 2010.5.7.0) and GHOST (may go open beta).
Post by: Fyrecrypts on May 07, 2010, 05:38:26 pm
Version 2010.5.7
-------------------
New Games:
Athena, Battle of Atlantis, Atomic Point, Aurail, Action Hollywood, A.D. 2083, Action Fighter, Agress, Air Attack, Air Buster: Trouble Specialty Raid Unit (Fyrecrypts)

Bug Fixes:
The -l flag now also lists games supported in the XML.
Fixed the hiscore.dat entry for Action Fighter.

New features:
Added a new DisplayStructure/FieldName/ConversionType element built in function called TwoToThreeEncoding. It takes one parameter in parenthesis, the number of characters it needs to loop through before it increments the next character. Think of it like binary encoding, there are two values: 0, and 1. If you see a number 2 in decimal, it would be converted to 10 in binary. The same is essentially true for this function, a value of 32 means seeing 0x3981, converts to: 0x14, 0x12, 0x01 (Adding 64 to each byte gets us standard ASCII of: N-L-A). A good example of this can be seen in ad2083 for displaying the high score.
Added a new SetStructure/FieldName/ConversionType element built in function called TwoToThreeEncoding.  Similarly to above it takes the same parameter as above, but basically reverses the logic to create a 2 byte name from 3 characters.
Added a new flag "-lp" that lists only the supported parent games. This requires another argument after the flag that is the full path to your mame.exe file (e.g. HiToText -lp "C:\Emulators\mame.exe". This may take a few minutes.
Title: Re: HiToText (Version 2010.5.7.0) and GHOST (may go open beta).
Post by: Fyrecrypts on May 10, 2010, 11:25:36 pm
The next version will change things slightly, it will not be a one-shot run like it currently is, and instead will stay open allowing commands to be continuously called. This should speed up how frontends utilize HiToText, but will require they change how they interact with it now to get the new functionality. The commands will be the same (minus shelling HiToText every time, and -q to quit), but I thought I'd throw out this warning now so headkaze, Tom, and BadBoyBill could get a heads up (and any other devs that utilize HiToText that I don't know about).
Title: Re: HiToText (Version 2010.5.12.0) and GHOST (may go open beta).
Post by: Fyrecrypts on May 12, 2010, 11:57:27 am
-------------------
Version 2010.5.12
-------------------
New Games:
Air Duel, Airwolf, Alex Kidd: The Lost Stars (Fyrecrypts)

Bug Fixes:
Some fixes to the -lp flag, that should have it work for more (if not all) versions of MAME.
The -v flag should work correctly now, the standalone version will need a full path to the mame folder.
Added elevatorb clone to elevator in hiscore.dat
Moved spcinv95 to the parent rom in hiscore.dat

New features:
Determine rank functions can now be custom functions that utilize the ConvertByteArrayToString methods and convert to int if no named ConvertByteArrayToInt exists. Essentially, lots of custom ConvertByteArrayToInt functions were being created that just called the ConvertByteArrayToString method, so I went ahead and put in a small routine to automatically do that for me.
HiToText can now be run in continuous mode. All you do is shell the app, and it will ask for commands. The older functionality still exists so you can pass it command line arguments and it will behave the same.
Two new flags have been created -h, and -q. -q will exit the application in continuous mode. -h will provide the help menu.
For those of you compiling HiToText yourself, you will notice there are new environments for testing with debug flags associated with them. This makes testing much easier for me, as well as ensuring releases are already setup correctly. This has no effect on people who don't compile.
Title: Re: HiToText (Version 2010.8.9.0) and GHOST (may go open beta).
Post by: Fyrecrypts on August 09, 2010, 04:27:38 pm
Some minor bug fixes, and some games added, mostly by bLAZER from the HyperSpin boards. He's been creating XML entries at a pretty fast pace. I'd expect more pretty quickly (and in fact he probably already has more). Hooray!

I'm looking into streamlining things even more, and most of that should be behind the scenes, but you should (hopefully) see speed increases within the next few releases.

-------------------
Version 2010.8.9
-------------------
New Games:
Alien3: The Gun, Aliens, Alien Sector, The Alphax Z, Alpine Ski, Soldier Girl Amazon (Fyrecrypts)
Bio Attack, Dommy, M-79 Ambush, Monte Carlo, Qwak, King & Balloon, Mermaid, The End, Snow Bros. 2 - With New Elves / Otenki Paradise (bLAZER)

Bug Fixes:
Fixed duplication of special mapping in Argus.
hiscore.dat modified to have m660 clones of alphaxz
hiscore.dat modified to fix amazon.
Issue with relative path to file not working correctly. It is now.

New features:
Clone added to alphaxz (m660j).
Long name clones added to altbeast.
Clone changes and additions to invaders.
Title: Re: HiToText (Version 2010.8.16.0).
Post by: Fyrecrypts on August 16, 2010, 01:15:36 pm
Put in some major speedups (about 400% faster) for legacy read calls. This was desperately needed for any FEs which didn't change how they call HiToText to use the static implementation which front loads a lot of information in the first call. Each call beyond the first is much faster. Now the difference between these legacy read calls, the static second and beyond calls, and the old non-XML calls is only about 10-50ms tops.

Additionally, bLAZER has been on a roll incorporating 21 new games (and moving Galaxian to the XML format). Pretty big update for only one week's wait since the last one.

-------------------
Version 2010.8.16
-------------------
New Games: Crash, Orbitron, Sheriff, Water Ski, Logic Pro, The Tin Star, Enigma II, Hexa, Gee Bee, Paradise, Indian Battle, Red Clash, Super Bug, Targ, Spectar, Sasuke vs. Commander, Pisces, Killer Comet, Tank Battalion, Levers, Navarone (bLAZER)

Bug Fixes:
Fixed issue with alien3, rank display was incorrectly read as int instead of a hex int.
tinstar2 added to hiscore.dat (clone of tinstar).
enigma2a, and enigma2b added to hiscore.dat (clones of enigma2).
geebeeb added to hiscore.dat (clone of geebee).
targ and spectar split into separate parents.
targc added to hiscore.dat (clone of targ).
panzer, phantom, phantoma, and rallys added to hiscore.dat (clones of spectar).
piscesb added to hiscore.dat (clone of pisces).

New features:
Massive speed increases for legacy calls using the command line. It's not quite as fast as legacy drivers were, but the difference is only about 10-50 ms. at most which is usually negligible.
Title: Re: HiToText (Version 2010.8.16.0).
Post by: tspeirs on August 18, 2010, 07:10:14 pm
Good work Fyrecrypts. Glad to see your project is still moving forwards. Ill include the latest version with the next GameEx release if that's ok with you?
Title: Re: HiToText (Version 2010.8.16.0).
Post by: tspeirs on August 18, 2010, 07:32:18 pm
Something strange with the latest version when testing with GamEx, unless Im going crazy. Im getting a message box as if somethings trying to launch advmame. Does that make any sense to you, unless it something weird going on with GameEx on my machine? Ive only got an old copy of advmame on my machine and I tried renaming the executable, still seems to do it. Otherwise it appears to work well and a load more games supported now since I last played with this which is cool.

EDIT: I removed all the legacy executables from my MAME folder, and its ok now. It was obviously trying to launch something there, not quite sure why?
Title: Re: HiToText (Version 2010.8.16.0).
Post by: Fyrecrypts on August 18, 2010, 07:59:05 pm
It does try to shell mame for some tasks, such as determining the version of mame you use to generate nvram files (to determine how to parse certain files, in particular track and field), or generating a list of parent games supported by HiToText. Renaming advancemame to not have the name "mame" in it will cause HiToText to ignore it. Even if it's just advmaame.exe.

Bringing it up like this makes me realize how much waste is done for games that don't have alternate versions. I think I'll look into modifying this so it only comes up when necessary.

As for including the executable that's always okay with me, I appreciate you asking though. Don't forget to include the HiToText.xml file as well. HiToText will work, but many games are supported only via the XML file and not individual drivers anymore.

Glad you're enjoying it, and thanks again for including support in GameEx. =)
Title: Re: HiToText (Version 2010.8.16.0).
Post by: tspeirs on August 18, 2010, 08:51:59 pm
Alternativly, is there or if there was a command line option to tell it the mame executable, rather than have it search?
Title: Re: HiToText (Version 2010.8.16.0).
Post by: Fyrecrypts on August 18, 2010, 08:54:37 pm
Alternativly, is there or if there was a command line option to tell it the mame executable, rather than have it search?

You can, or at least should be able to, append the -v command after any request and follow that with the full path to the mame executable. It should grab the info from that version of mame. I haven't tested that feature in about half a year though, so it could currently be broken.
Title: Re: HiToText (Version 2010.8.16.0).
Post by: highlander on August 20, 2010, 12:48:37 am
hey guys... has anyone done any work on "gorf"? the hiscore.dat entry for it seems to be wrong...
Title: Re: HiToText (Version 2010.8.16.0).
Post by: Fyrecrypts on August 22, 2010, 12:26:58 pm
hey guys... has anyone done any work on "gorf"? the hiscore.dat entry for it seems to be wrong...

I haven't done any work on it, is it missing important score data? I get a .hi file to generate, but haven't done any testing beyond that. Do you have more info?
Title: Re: HiToText (Version 2010.8.16.0).
Post by: highlander on August 22, 2010, 08:05:06 pm
Yes... a hi entry is generated but no hi scores are saved.. I tested it with six scores in the hi score table and none of them was saved... all went back to zero...  sorry I don't know much about the process of finding the correct hi score entries...  I had been using the hi.dat from Leezer, but heard that you guys were good at fixing incorrect entries.. I have a version of "tiny" mameui 0.138 that I compiled myself that has only 113 classic games from the 70's and 80's in it... after comparing your latest hiscore.dat to Leezer's (the 'gorf' entries are the same) I found that your entry for 'berzerk' was correct, 'cosmicmo' was correct, also 'astdelux' was correct (not in Leezer's dat)... however Leezer's entry for 'dkongjrj' was correct (no hi entry was created when using yours)... anyway the 'gorf' and 'spacezap' entries are the same in both hi.dat files and neither saves the hi scores... If my memory is correct, I don't think 'spacezap' has ever worked, even when mame officially supported hi scores... sorry for the rambling and thanks for you help..  :)
Title: Re: HiToText (Version 2010.8.16.0).
Post by: Fyrecrypts on August 22, 2010, 09:41:33 pm
Yes... a hi entry is generated but no hi scores are saved.. I tested it with six scores in the hi score table and none of them was saved... all went back to zero...  sorry I don't know much about the process of finding the correct hi score entries...  I had been using the hi.dat from Leezer, but heard that you guys were good at fixing incorrect entries.. I have a version of "tiny" mameui 0.138 that I compiled myself that has only 113 classic games from the 70's and 80's in it... after comparing your latest hiscore.dat to Leezer's (the 'gorf' entries are the same) I found that your entry for 'berzerk' was correct, 'cosmicmo' was correct, also 'astdelux' was correct (not in Leezer's dat)... however Leezer's entry for 'dkongjrj' was correct (no hi entry was created when using yours)... anyway the 'gorf' and 'spacezap' entries are the same in both hi.dat files and neither saves the hi scores... If my memory is correct, I don't think 'spacezap' has ever worked, even when mame officially supported hi scores... sorry for the rambling and thanks for you help..  :)

You are correct! Dkongjrj doesn't work. It appears my trying to fix it, broke it. Leezer's version is missing the score 5 first digit or something like that. My repairs must have failed, I'll be fixing it shortly. The link in my sig points to a current version of the hiscore.dat database I have, so as soon as I fix it, there will automatically be an update. As for gorf and spacezap, guess those are good candidates to fix as well. =)

Thanks for pointing out the issues.

Edit: It does in fact seem to work for dkongjr, so looks like it just needs to be split up a bit, as the memory is probably in slightly different locations.
Title: Re: HiToText (Version 2010.8.16.0).
Post by: highlander on August 22, 2010, 10:32:16 pm
Quote
Edit: It does in fact seem to work for dkongjr, so looks like it just needs to be split up a bit, as the memory is probably in slightly different locations.

Yes.. dkongjr appears to be working, but it looks like its the same as Leezer's entry except for the 3'rd column being two digit's instead of one digit.. does this make a difference?...
Title: Re: HiToText (Version 2010.8.16.0).
Post by: Cananas on August 23, 2010, 04:24:58 pm
As for gorf and spacezap, guess those are good candidates to fix as well. =)

Apart from a littles fixes, both gorf and spacezap write the hiscore data in the Protected RAM (0xd000-0xd03f). Even in the debugger I can not write at this locations,so I don't know how we can tell to "hiscore.c" to write into this Protected RAM (I even don't know how this pprotection works. Of course, the program writes on those memory locations).

MkChamp, maybe?
Title: Re: HiToText (Version 2010.8.16.0).
Post by: Fyrecrypts on August 23, 2010, 04:29:10 pm
As for gorf and spacezap, guess those are good candidates to fix as well. =)

Apart from a littles fixes, both gorf and spacezap write the hiscore data in the Protected RAM (0xd000-0xd03f). Even in the debugger I can not write at this locations,so I don't know how we can tell to "hiscore.c" to write into this Protected RAM (I even don't know how this pprotection works. Of course, the program writes on those memory locations).

MkChamp, maybe?

Came to the same conclusion, the scores get saved in the file after exiting, but never get rewritten (protected RAM). I thought maybe the scores were being saved in more than one place, hopefully somewhere not also protected, but I hadn't looked yet.

Cananas is very knowledgeable, especially about the hiscore.dat and how the memory works for each game, so I would say he's much more likely to be correct and thorough.
Title: Re: HiToText (Version 2010.8.16.0).
Post by: Cananas on August 23, 2010, 04:33:47 pm
There is another location (not in gorf) in spacezap, at 0xd041 (not Protected RAM), but it don't take effect. It rewrite the data, yes, but this is not the data the game wants.

I sent a PM to MKChamp.

wow is also a similar case, but here, the hiscore data is stored above 0xd03f (so no Protected RAM) and of course, it works and is included in HiTotext.

Meanwhile, I debuging the game step to step trying to find a good point in which the program writes to those locations, with no results.
Title: Re: HiToText (Version 2010.8.16.0).
Post by: highlander on August 23, 2010, 05:11:59 pm
Oh well.... I was afraid "gorf" and "spacezap" was a lost cause... guess I'll just have to use savestate for these... anyway thanks very much for looking into it... I have noticed a problem with 2 other games: polepos and polepos2, a hi file is not generated for either of these.. I know some of the hi scores are saved in nvram anyway... poleposa generates a hi file though...
Title: Re: HiToText (Version 2010.8.16.0).
Post by: Fyrecrypts on August 23, 2010, 05:21:31 pm
Oh well.... I was afraid "gorf" and "spacezap" was a lost cause... guess I'll just have to use savestate for these... anyway thanks very much for looking into it... I have noticed a problem with 2 other games: polepos and polepos2, a hi file is not generated for either of these.. I know some of the hi scores are saved in nvram anyway... poleposa generates a hi file though...

I wouldn't call them lost causes, when the cinemat.c issues were discovered, Cananas and MK Champ were able to come up with a solution fairly quickly. I'm not saying this will be the same, but I wouldn't be too concerned about never seeing gorf or spacezap in HiToText in one form or another.
Title: Re: HiToText (Version 2010.8.16.0).
Post by: highlander on August 23, 2010, 05:29:50 pm
Your right there is always hope :)
Title: Re: HiToText (Version 2010.8.24.0).
Post by: Fyrecrypts on August 24, 2010, 03:57:14 pm
No major fixes here, but hopefully it's the final fix to the -lp command. Additionally, I went ahead and implemented something to stop HiToText for looking for MAME if it doesn't need to. No new games in this version.

-------------------
Version 2010.8.24
-------------------
Bug Fixes:
Fix to -lp command, it actually works in all known circumstances (so far).
Fix to version checking of MAME, only used when necessary (so far just Track and Field).
Title: Re: HiToText (Version 2010.8.24.0).
Post by: Fyrecrypts on September 01, 2010, 01:46:59 pm
Minor news, I've gone ahead and put this project up on Sourceforge (https://sourceforge.net/projects/hitotext/). It's currently using SVN for the source control, so hopefully that's easier than me zipping it up and putting it on my FTP.

I haven't decorated it too much, as it's mostly setup right now for code retrieval, but I'm sure I'll add to it as time goes on.

I probably won't do source updates through my FTP anymore, since I have this setup. I'll update the main post with the new links when I get a new version done.
Title: Re: HiToText (Version 2010.8.24.0).
Post by: kernelpanic on September 07, 2010, 06:47:36 pm
so I was playing with hiToText after finding a link to this from the MaLa front end forum. I notice that pacman is not supported. Has this just not been tackled yet? It's a single high score - file is 11 bytes long and the first two bytes are the high score in reverse order. In my simple tests, I can't get over 10K, so not sure how those are handled. The next 3 bytes are all 00s so likely a continuation fo the score - the remaining bytes make no sense to me - the file does seem to always end with  @@H (40 40 48)
Title: Re: HiToText (Version 2010.8.24.0).
Post by: Fyrecrypts on September 07, 2010, 06:48:36 pm
so I was playing with hiToText after finding a link to this from the MaLa front end forum. I notice that pacman is not supported. Has this just not been tackled yet? It's a single high score - file is 11 bytes long and the first two bytes are the high score in reverse order. In my simple tests, I can't get over 10K, so not sure how those are handled. The next 3 bytes are all 00s so likely a continuation fo the score - the remaining bytes make no sense to me - the file does seem to always end with  @@H (40 40 48)

It's supported in legacy drivers. Hasn't been ported over to the XML format, but it will work.
Title: Re: HiToText (Version 2010.8.24.0).
Post by: loadman on September 08, 2010, 12:30:51 am
FYI:

In the MaLa section there is discussion going on about how best to integrate/display this in MaLa.

http://forum.arcadecontrols.com/index.php?topic=105664.0 (http://forum.arcadecontrols.com/index.php?topic=105664.0)
Title: Re: HiToText (Version 2010.8.24.0).
Post by: kernelpanic on September 10, 2010, 02:39:29 pm
so how can help with this project? Specifically, I am interested in getting some games that we play a lot into the "system" so to speak. For example, for The New Zealand Story, it only stores the top 5 scores, but it also keeps a "last round completed" value along with 3 initials. I have a screen shot with a corresponding .hi file - would that help? or do you need more?
Title: Re: HiToText (Version 2010.9.10.0).
Post by: Fyrecrypts on September 10, 2010, 02:52:53 pm
New release, mostly a big bugfix for resupporting legacy drivers (found by kernelpanic). A previous release had broken that, so games like pacman (!) were no longer working. Also added a few games to the XML.

-------------------
Version 2010.9.10
-------------------
New Games: Ambush, Angel Kids, Avengers (Fyrecrypts)

Bug Fixes:
10yard modified in hiscore.dat, and XML entry to add new clones.
1943 modified in hiscore.dat, and XML entry to add clone: 1943u, and move 1943kai to it's own entry.
Fix to legacy driver support. It stopped working on the last release, it's back in!
Title: Re: HiToText (Version 2010.8.24.0).
Post by: Fyrecrypts on September 10, 2010, 03:01:16 pm
so how can help with this project? Specifically, I am interested in getting some games that we play a lot into the "system" so to speak. For example, for The New Zealand Story, it only stores the top 5 scores, but it also keeps a "last round completed" value along with 3 initials. I have a screen shot with a corresponding .hi file - would that help? or do you need more?

This is doable in the XML format (read my response below)! In the meantime, I recommend taking a look at what dna disturber and Wob were doing around pages 6-9 to show how to document games so we could incorporate them into HiToText. It's a lot easier now with the XML format, so simpler games can just sorta be plugged in.

However, screenshots with .hi files are certainly better than nothing, but if you have the motivation, there's more that could be done that would make incorporating these games much faster and easier.

Thanks for wanting to contribute! The more contributors, the faster things get done. =)
Title: Re: HiToText (Version 2010.9.10.0).
Post by: kernelpanic on September 10, 2010, 04:19:13 pm
ok, I'll give it go.

The NEWZEALAND STORY
ROM Name: tnzs

Keeps "Best 5" scores

.hi file length = 35 bytes, 7 bytes per record

3 bytes for score, 1 byte for round, 3 bytes for initials

byte 00-02      00 49 00 // score of 49000
byte 03           05 // round (see below)
byte 04-06      4B 41 4E // initials of KAN

rinse and repeat as necessary

byte 03 of the record is a round completed value mapped as follows

val = level-round
00 = 1-1
01 = 1-2
02 = 1-3
03 = 1-4
04 = 2-1
05 = 2-2
etc
etc
there are 5 levels of 4 rounds, up to 20 rounds total - 5-4 is the last round

I think there are only 3 special characters allowed in initials, but I'll have to dig around some more to be sure about this

. period
?
!

I don't find a NVRAM file for it.


Let me know if that's too much info, or not enuf and what else you might want/need.

Title: Re: HiToText (Version 2010.9.10.0).
Post by: kernelpanic on September 10, 2010, 04:21:44 pm
-------------------
Version 2010.9.10
-------------------

pacman works great now - thanks! :cheers:
Title: Re: HiToText (Version 2010.9.10.0).
Post by: Fyrecrypts on September 10, 2010, 04:27:28 pm
ok, I'll give it go.

The NEWZEALAND STORY
ROM Name: tnzs

Keeps "Best 5" scores

.hi file length = 35 bytes, 7 bytes per record

3 bytes for score, 1 byte for round, 3 bytes for initials

byte 00-02      00 49 00 // score of 49000
byte 03           05 // round (see below)
byte 04-06      4B 41 4E // initials of KAN

rinse and repeat as necessary

byte 03 of the record is a round completed value mapped as follows

val = level-round
00 = 1-1
01 = 1-2
02 = 1-3
03 = 1-4
04 = 2-1
05 = 2-2
etc
etc
there are 5 levels of 4 rounds, up to 20 rounds total - 5-4 is the last round

I think there are only 3 special characters allowed in initials, but I'll have to dig around some more to be sure about this

. period
?
!

I don't find a NVRAM file for it.


After seeing this description I realize I misread your first post about the game. This is totally doable in the XML format! Here's an example game that utilizes the same basic format:

<Entry>
    <Header>
      <Games>
        <Name>alexkidd</Name>
        <Name>alexkidd1</Name>
        <Name>alexkid1</Name>  <!-- Old name -->
        <Name>alexkida</Name>  <!-- Old name -->
      </Games>
      <Fields>
        <Name>RANK</Name>
        <Name>SCORE</Name>
        <Name>NAME</Name>
        <Name>ROUND</Name>
      </Fields>
      <Extensions>
        <Name>.hi</Name>
      </Extensions>
      <TextParameters>
        <Formats>
          <Name>NeedsSpecialMapping</Name>
          <Name>ASCIIStandard</Name>
        </Formats>
        <SpecialMapping>
          <Map Char=" " Byte="0x00"/>
          <Map Char="-" Byte="0x3e"/>
          <Map Char="." Byte="0x5b"/>
          <Map Char="!" Byte="0x5e"/>
          <Map Char="&amp;" Byte="0x5f"/>
        </SpecialMapping>
      </TextParameters>
    </Header>
    <FileStructure>
      <Mapping NumberOfBlocks="7" Ordering="Ascending">
        <Entry Name="Score" Length="4"/>
        <Entry Name="Round" Length="1"/>
        <Entry Name="Name" Length="3"/>
      </Mapping>
      <Mapping NumberOfBlocks="1" Ordering="None">
        <Entry Name="HiScore" Length="4"/>
      </Mapping>
    </FileStructure>
    <SetStructure>
      <FieldName Name="Score" FieldType="int" ConversionType="IntToByteArrayHex" Position="1">
        <SpecialUtilization>EmptyScores</SpecialUtilization>
        <SpecialUtilization>IsAdjusted</SpecialUtilization>
        <SpecialUtilization Function="Standard">DetermineRank</SpecialUtilization>
      </FieldName>
      <FieldName Name="Name" FieldType="string" ConversionType="Name" Position="2">
        <SpecialUtilization>ModifyName</SpecialUtilization>
        <SpecialUtilization>IsAdjusted</SpecialUtilization>
      </FieldName>
      <FieldName Name="Round" FieldType="int" ConversionType="IntToByteArrayHex" Position="3">
        <SpecialUtilization>IsAdjusted</SpecialUtilization>
      </FieldName>
      <FieldName Name="HiScore" FieldType="int" ConversionType="IntToByteArrayHex" Position="1">
        <SpecialUtilization>EmptyScores</SpecialUtilization>
        <SpecialUtilization>IsHiScore</SpecialUtilization>
      </FieldName>
    </SetStructure>
    <DisplayStructure>
      <FieldName Name="Rank" ConversionType="CannedDisplay.AscendingFrom1"/>
      <FieldName Name="Score" ConversionType="Standard"/>
      <FieldName Name="Name" ConversionType="Name"/>
      <FieldName Name="Round" ConversionType="Standard"/>
    </DisplayStructure>
  </Entry>
Title: Re: HiToText (Version 2010.9.10.0).
Post by: kernelpanic on September 10, 2010, 06:29:59 pm
After seeing this description I realize I misread your first post about the game. This is totally doable in the XML format! Here's an example game that utilizes the same basic format:

Ok, I downloaded the XML guide and I'll see if I can figure out what all the stuff means.
Title: Re: HiToText (Version 2010.9.10.0).
Post by: dna disturber on September 18, 2010, 02:07:22 pm
Hi Fyrecrypts,

Could you check this one out for me ?
It's congo bongo and clone tiptop.....

Display seems to go fine and  erasing all scores but writing or modifying just won't work.
What am I doing wrong here?  (With hexedit I can just change them so no checksum I would think)

TIA,

Dna Disturber  :cheers:

P.S. All nvram games won't display the scores in hyperspin....is there something wrong in my config or is hyperspin not handling the .nv files.
Title: Re: HiToText (Version 2010.9.10.0).
Post by: Fyrecrypts on September 18, 2010, 09:12:27 pm
Hi Fyrecrypts,

Could you check this one out for me ?
It's congo bongo and clone tiptop.....

Display seems to go fine and  erasing all scores but writing or modifying just won't work.
What am I doing wrong here?  (With hexedit I can just change them so no checksum I would think)

TIA,

Dna Disturber  :cheers:

P.S. All nvram games won't display the scores in hyperspin....is there something wrong in my config or is hyperspin not handling the .nv files.


Looks like you should have: ConversionType="IntToByteArrayHex" for the score and hi score to be: ConversionType="IntToByteArraySingleBCD"

Not sure about the high score since i'm not able to look at it right now, but my guess is you just didn't realize you needed to change the conversion types in the set structure. =) Also, welcome back!

As for the games in HyperSpin, I'll have to take a look later when I get a chance, but I'd guess it's probably a bug in HiToText that I need to fix.
Title: Re: HiToText (Version 2010.9.10.0).
Post by: loadman on September 18, 2010, 11:55:27 pm
OK thanks to kernelpanic there is basic support for HiToText to display on info page in MaLa:

It only works with the MaLa beta at this point 1.716 +

Instructions here:

http://forum.arcadecontrols.com/index.php?topic=105664.msg1119973#msg1119973 (http://forum.arcadecontrols.com/index.php?topic=105664.msg1119973#msg1119973)
Title: Re: HiToText (Version 2010.9.10.0).
Post by: dna disturber on September 19, 2010, 09:12:04 am
@Fyrecrypts thanks for the info .....changed it and found out that I had to use determinerank in it too.

Here are 2 new games:
congo (including tiptop clone)
qix (including qixa,qixb,qixo,qix2 clones)

qix unfortunately has checksums (it uses nvram only) so when I write a highscore using hitotext the game won't accept any credits anymore.
Perhaps the master checksum analyzer can find this one out -> Cananas  I need your help  :notworthy:
Reading the hiscores works fine btw....

Dna Disturber    :cheers:

P.S It feels good to be back  :P

Title: Re: HiToText (Version 2010.9.10.0).
Post by: headkaze on September 19, 2010, 03:32:56 pm
Just wanted to say "great job" to Fyrecrypts (and team) for your continued hard work on this  :cheers:
Title: Re: HiToText (Version 2010.9.10.0).
Post by: dna disturber on September 20, 2010, 02:30:11 pm
4 new games + clones:

satansat (includes clones:   satansata , satansaa & zarzon)
rocnrope (includes clones:   rocnropk & rocnropek)
rompers  (includes clone : romperso)
saturn

Suggested changes to hiscore.dat :
satansata needs to be added as clone to satansat
satansaa can have the comment ;old added to it
rocnropek needs to be added as clone to rocnrope
rocnropk can have the comment ;old added to it

Dna Disturber    :cheers:
Title: Re: HiToText (Version 2010.9.10.0).
Post by: dna disturber on September 20, 2010, 04:18:11 pm
Quote
@fyrecrypts

Is it possible to have a specialutilization command for the XML that fills up bytes with chosen value's
This would be for the incomingmodified specialutilization.

For instance I'm working on ladyfrog and the names get filled at the back with spaces. When writing a highscore with hitotext the scoretable in the game doesn't look good because of the spaces not being there.
Same goes for ladybug , this game fills up the front of the name with F's (so this is just the opposite of ladyfrog).
So it could be something like a frontfill and backfill function to fill up the bytes in certain games.
It could be used with one parameter, that would be the fillvalue (the length of the field is already known)

Never mind, I figured it out.....paddata or reversepaddata should do it.
I will try and see if I get it to work.

Dna Disturber    :cheers:




 
Title: Re: HiToText (Version 2010.9.10.0).
Post by: dna disturber on September 21, 2010, 07:12:19 pm
2 new games + clones

kick     (includes clones :   kickc & kickman)
dogfgt (includes clone  :   dogfgtj)


For dogfgt to work properly the hiscore.dat needs to be changed (the entry wasn't complete and didn't have the hiscore in it)
The entry should be:
dogfgt:
dogfgtj:
0:0607:50:00:00
0:029:03:00:01


First time I used the mame debugger and actually found the missing data  ;D (It took me a while though.....and some luck....)  :dizzy:

Dna Disturber    :cheers:
Title: Re: HiToText (Version 2010.9.10.0).
Post by: Fyrecrypts on September 22, 2010, 11:31:31 am
OK thanks to kernelpanic there is basic support for HiToText to display on info page in MaLa:

It only works with the MaLa beta at this point 1.716 +

Instructions here:

http://forum.arcadecontrols.com/index.php?topic=105664.msg1119973#msg1119973 (http://forum.arcadecontrols.com/index.php?topic=105664.msg1119973#msg1119973)

Nice! This is great stuff! Thank you loadman, I'll have to check it out soon, it's been a very busy last few days. =)

I'm pretty sure Cananas uses MaLa quite a bit as well, so he'll probably be loving this.

Just wanted to say "great job" to Fyrecrypts (and team) for your continued hard work on this  :cheers:

Thanks, and it's definitely a team effort!
Quote
@fyrecrypts

Is it possible to have a specialutilization command for the XML that fills up bytes with chosen value's
This would be for the incomingmodified specialutilization.

For instance I'm working on ladyfrog and the names get filled at the back with spaces. When writing a highscore with hitotext the scoretable in the game doesn't look good because of the spaces not being there.
Same goes for ladybug , this game fills up the front of the name with F's (so this is just the opposite of ladyfrog).
So it could be something like a frontfill and backfill function to fill up the bytes in certain games.
It could be used with one parameter, that would be the fillvalue (the length of the field is already known)

Never mind, I figured it out.....paddata or reversepaddata should do it.
I will try and see if I get it to work.

Dna Disturber    :cheers:

Exactly, I ran into this quite a bit, and finally just made a common function out of it instead of creating custom code to handle it every time. PadData and PadDataReverse should do it for you, whichever one you need.

2 new games + clones

kick     (includes clones :   kickc & kickman)
dogfgt (includes clone  :   dogfgtj)


For dogfgt to work properly the hiscore.dat needs to be changed (the entry wasn't complete and didn't have the hiscore in it)
The entry should be:
dogfgt:
dogfgtj:
0:0607:50:00:00
0:029:03:00:01


First time I used the mame debugger and actually found the missing data  ;D (It took me a while though.....and some luck....)  :dizzy:

Dna Disturber    :cheers:


Congratulations! You've now been upgraded to hiscore.dat-astic mod/editor! I've sent you an e-mail with some details. Also, thanks for pounding out the games, I'll be adding them to the official HiToText.xml file and making a release sometime in the next couple days.
Title: Re: HiToText (Version 2010.9.10.0).
Post by: Cananas on September 22, 2010, 12:43:58 pm
I'm pretty sure Cananas uses MaLa quite a bit as well, so he'll probably be loving this.

How do you know that? Yes, I use MALA... I hope someday Loadman or somebody else include in MALA a pop up window with the clone games when you press a key on a parent. A parent games list with this it would be fatastic.

First time I used the mame debugger and actually found the missing data  ;D (It took me a while though.....and some luck....)  :dizzy:

Great!

Quote
Congratulations! You've now been upgraded to hiscore.dat-astic mod/editor! I've sent you an e-mail with some details.

Uppps. Sorry, dna disturber. I updated the hiscore.dat with your changes...
Title: Re: HiToText (Version 2010.9.10.0).
Post by: Fyrecrypts on September 22, 2010, 01:00:32 pm
I'm pretty sure Cananas uses MaLa quite a bit as well, so he'll probably be loving this.

How do you know that? Yes, I use MALA... I hope someday Loadman or somebody else include in MALA a pop up window with the clone games when you press a key on a parent. A parent games list with this it would be fatastic.

Stumbled on some post a while back in the MaLa forum where you gave some configuration help. Not trying to be creepy, sometimes I just remember these things.
Title: Re: HiToText (Version 2010.9.10.0).
Post by: dna disturber on September 22, 2010, 02:19:52 pm
I'm pretty sure Cananas uses MaLa quite a bit as well, so he'll probably be loving this.

How do you know that? Yes, I use MALA... I hope someday Loadman or somebody else include in MALA a pop up window with the clone games when you press a key on a parent. A parent games list with this it would be fatastic.

Stumbled on some post a while back in the MaLa forum where you gave some configuration help. Not trying to be creepy, sometimes I just remember these things.

Hmmm your avatar says otherwise.......     :laugh2:

And thanks for the trust guys  (datastic)    :cheers:  
Title: Re: HiToText (Version 2010.9.10.0).
Post by: dna disturber on September 22, 2010, 06:58:32 pm
1 new game
dockman  with clones portman & porter

Adjusted the hiscore.dat entry to match the correct hiscore-data (removed a piece of player 1 score and added 1 digit to the highscore)
Also removed the comment old at clone porter because it's still the correct name for the clone.
The game dockman still has both clones portman and porter.
 
@Fyrecrypts & Cananas  : Modifying worked datastic  ;)   :applaud:


Dna Disturber     :cheers: 
 
P.S. Since there is only one score that is kept in this game I named it Hiscore instead of the normal Score.  >:D
I think it just looks/sounds better on a game with just one hiscore. (and no names and other ranks, like pacman for instance)
@Fyrecrypts, Cananas , bLAZER What is your opinion ?
Title: Re: HiToText (Version 2010.9.10.0).
Post by: Fyrecrypts on September 23, 2010, 12:35:59 pm
P.S. Since there is only one score that is kept in this game I named it Hiscore instead of the normal Score.  >:D
I think it just looks/sounds better on a game with just one hiscore. (and no names and other ranks, like pacman for instance)
@Fyrecrypts, Cananas , bLAZER What is your opinion ?

That's the beauty of the XML format, you can make it look like whatever you want. As for the official version, I'll probably stick to SCORE, just because that's what everything else already is. I don't mind changing everything else, if people think it looks better. I just want to maintain consistency.
Title: Re: HiToText (Version 2010.9.10.0).
Post by: dna disturber on October 12, 2010, 10:39:55 am
5 new games to add to the XML

calipso
zzyzzyxx + clones
zodiack
zombieraid
zoar

Dna Disturber   :cheers:
Title: Re: HiToText (Version 2010.9.10.0).
Post by: TheManuel on October 14, 2010, 11:06:01 am
I only learned about HiToText a few days ago and I'm loving it.  This is a perfect example of people coming up with fresh and exciting ideas for, just when you think you've seen it all.  It certainly keeps the hobby interesting.

I have a question:
I have a .hi file for galaga that was originally created with an older version of MAME (0.129).  HiToText does not load the data from this file.  If I create a new .hi file from scratch with that same MAME version, it reads it just fine.  However, if leave in the old .hi file, run the game and let MAME overwrite the original file, I still see the high scores in MAME but HiToText still can't read it.
Is this a compatibility issue with my MAME version?

The puzzling part is that HiToText will read a .hi file that has been newly created with that same MAME version.

Regards.
Title: Re: HiToText (Version 2010.9.10.0).
Post by: dna disturber on October 15, 2010, 03:08:44 pm
Hi TheManuel,

Not sure why you're having those problems but HitoText can also write hiscores to .hi files.
If you write down your score from the old .hi and then create a totally new one with a newer version of mame you can write that score into the new .hi

You just have to use HitoText -w for it.....you can use the help command from (Hitotext -?) to see an example.

Hope this helps........

Dna Disturber  :cheers:
Title: Re: HiToText (Version 2010.9.10.0).
Post by: TheManuel on October 15, 2010, 04:18:21 pm
That's awesome!
Thanks.
Title: Re: HiToText (Version 2010.9.10.0).
Post by: dna disturber on October 18, 2010, 02:53:15 pm
4 games to add to the XML

They are:
Mega Blast + 4 clones (2 of them old) - also added the 4 clones to hiscore.dat
Meta fox
Metal Clash
Wall Crash + 1 clone

Dna Disturber   :cheers:


Title: Re: HiToText (Version 2010.9.10.0).
Post by: dna disturber on October 23, 2010, 11:08:01 am
Another 4 games to add to the xml:

Mikie + clones
Mister Viking + clones  (2 clones added to hiscore.dat)
Valtric
Xain'd Sleena + clones  (2 clones added to hiscore.dat)

Dna Disturber :cheers:
Title: Re: HiToText (Version 2010.9.10.0).
Post by: TheManuel on October 25, 2010, 09:17:15 am
Hello.

What is the difference between the official hiscore.dat and the the one that can be downloaded from hiscore.dat-astic!?

Also, can HiToText display high scores from mspacman?
OK.  I saw puckman in the list of supported games, is mspacman covered by it?
Title: Re: HiToText (Version 2010.9.10.0).
Post by: dna disturber on October 25, 2010, 12:23:13 pm
Hi TheManuel,

Mspacman is supported and is a parent(not covered by puckman)   :D

The hiscore.dat from the HiToText project is I would say updated more often.
When there is a problem with the hiscore saving it's fixed (if possible).
Because of the project HiToText these problems get detected quicker because we work on the hiscores.

A big difference is that the hiscore.dat from the HiToText project supports old romnames.
So it doesn't matter what version of mame you use a .hi file will still be created using the same(newest hiscore.dat).

Leezer's is also great and if it wasn't for his hiscore.dat HiToText probably wouldn't even be here....

Dna Disturber    :cheers:

 



 
Title: Re: HiToText (Version 2010.9.10.0).
Post by: TheManuel on October 25, 2010, 12:36:59 pm
Quote
Mspacman is supported and is a parent(not covered by puckman)
Ah, OK.
I did not see it in the list of supported games on the online spreadsheet or among the .cs files in the HiToText folder but now I see it in the list that HiToText creates with the -l switch.

Quote
A big difference is that the hiscore.dat from the HiToText project supports old romnames.
So it doesn't matter what version of mame you use a .hi file will still be created using the same(newest hiscore.dat).
This is awesome.  That, combined with HiToText's ability to adapt to your own MAME version, makes the software rather robust.

I'm currently setting up Hyperspin and I got to the point where I'm setting up HiToText to make sure I can see the high scores I care about.  Looks like I should be in good shape if I download the HiToText .dat file. 
If I have to specify my specific MAME version, does HTT store this info in an ini file, or do I have to run it with the command line switch every time?  I don't think you can change the HTT command line in HS.

Thanks for all your answers.
Title: Re: HiToText (Version 2010.9.10.0).
Post by: dna disturber on October 25, 2010, 01:02:51 pm
@TheManuel :

HiToText doesn't need to know the mameversion.

Put the hiscore.dat in your mamedirectory and download the newest version of HitoText (the one with the XML file included) and place it in the hyperspin directory.
In HyperHQ you then turn on HiToText and that's it......

The games must have a .hi to work so you should start the game(s) onetime to get HiToText showing the scores in hyperspin (start a game , exit , scroll up a game and then down again in hyperspin and you should see a score.

Be carefull when you use hyperlaunch to launch mame within hyperspin because it doesn't exit mame the right way (your hiscore won't be saved).
You can easily adjust hyperlaunch to do it the right way, if needed you can find the solution in the hyperspin forum.

Hope this helps.
Oh I forgot to tell you you need a hiscore enabled mame  but I'm assuming you already know that......

Let me know how everything goes......

Dna Disturber    :cheers:
Title: Re: HiToText (Version 2010.9.10.0).
Post by: TheManuel on October 25, 2010, 01:10:57 pm
Thanks, dna disturber.

I think I sounded more ignorant that I really was about the whole thing  ;D.

I was just curious as to what was that feature of HiToText.
This is from the command line's help blurb:

       You can specify your own version (by date) of HiToText if it is not
       determining your version correctly. You can only do this with the -r, -ra
, -w, and -wa flags.
       You can see your mame version by running mame with the -help command. (e.
g. mame -help).
Title: Re: HiToText (Version 2010.9.10.0).
Post by: Fyrecrypts on October 25, 2010, 01:17:11 pm
Thanks, dna disturber.

I think I sounded more ignorant that I really was about the whole thing  ;D.

I was just curious as to what was that feature of HiToText.
This is from the command line's help blurb:

       You can specify your own version (by date) of HiToText if it is not
       determining your version correctly. You can only do this with the -r, -ra
, -w, and -wa flags.
       You can see your mame version by running mame with the -help command. (e.
g. mame -help).

There is currently only one instance where HiToText needs to know a version, Track and field. You can indeed specify your own version if you don't want HiToText to do it for you. =) This comes up because older versions of MAME create different NVRAM for track and field (I'm sure other games too that we haven't dealt with yet). So if you had an older version you'd want to use a different handler that takes into account the different NVRAM.

For most users, not supplying a version manually should be 100% okay.
Title: Re: HiToText (Version 2010.9.10.0).
Post by: TheManuel on October 25, 2010, 01:19:33 pm
Alright, that should work for me.
Thanks a lot!
Title: Re: HiToText (Version 2010.9.10.0).
Post by: dna disturber on October 27, 2010, 11:49:40 am
Another 5 games to add to the xml:

Minefield
Minky Monkey
Mole Attack
Monster Bash + clone             - adjustments hiscore.dat:  added/renamed -> clones/old romnames
Moonwar + clone                   - adjustments hiscore.dat:  added/renamed -> clones/old romnames

Dna Disturber    :cheers:
Title: Re: HiToText (Version 2010.9.10.0).
Post by: dna disturber on October 29, 2010, 06:22:50 pm
Another 5 games to add to the XML:

Traverse USA / Zippy Race   +clone   - hiscore.dat: removed 5 unnecessary bytes from the chunk of data.
Jack the giantKiller    +clones            - hiscore.dat: added clone treasure Hunt
Joinem
Loverboy
Freeze

Dna Disturber    :cheers:
Title: Re: HiToText (Version 2010.9.10.0).
Post by: dna disturber on November 01, 2010, 08:11:07 am
Another 5 games to add to the XML:

Funky Fish
Funky Bee + clone(s)         -hiscore.dat: added clones funkybeeb + funkbeeb (old)
Super Mouse + clone(s)      -hiscore.dat: added clones funnymou + suprmou2 (old)  *entry funnymou (as parent) can be removed from the hiscore.dat as of 0.138u1 suprmous is the parent (for now I put it on commentary)
Future Spy
Galactic Warriors

Dna Disturber    :cheers:



Title: Re: HiToText (Version 2010.9.10.0).
Post by: dna disturber on November 03, 2010, 11:56:01 am
Another 5 games to add to the HitoText.xml :

Battlantis + clone(s)
Battle Cross
Bermuda Triangle + clone(s)      -hiscore.dat : moved 2 clones (one of them old) to parent worldwar
World Wars + clone(s)              -hiscore.dat : 2 clones added (see above) + bermudaa put on commentary as it is a clone of worldwar and not a parent (this can be removed from hiscore.dat)
Tazz-Mania + clone(s)

Dna Disturber    :cheers:
Title: Re: HiToText (Version 2010.9.10.0).
Post by: Fyrecrypts on November 03, 2010, 06:00:32 pm
4 games to add to the XML

They are:
Mega Blast + 4 clones (2 of them old) - also added the 4 clones to hiscore.dat
Meta fox
Metal Clash
Wall Crash + 1 clone

Dna Disturber   :cheers:

Your Meta Fox .txt file was actually megablst. Can you put up Meta fox? =)
Title: Re: HiToText (Version 2010.9.10.0).
Post by: dna disturber on November 03, 2010, 07:23:41 pm
Your Meta Fox .txt file was actually megablst. Can you put up Meta fox? =)

Oops , probably did that one in the early morning hours..  

Title: Re: HiToText (Version 2010.9.10.0).
Post by: Fyrecrypts on November 04, 2010, 10:55:25 am
Your Meta Fox .txt file was actually megablst. Can you put up Meta fox? =)

Oops , probably did that one in the early morning hours..  



Hahaha, no worries, been there. =) Thanks for getting it to me so quick. Crossing my fingers for a release today.
Title: Re: HiToText (Version 2010.11.4).
Post by: Fyrecrypts on November 04, 2010, 11:53:41 am
New release! MANY games added by dna disturber as anyone who's been watching this thread has probably seen. I've converted some legacy games to the XML format (not a lot), added a small bit of XML functionality (described below), and a ton of work has been done on the hiscore.dat-astic.


-------------------
Version 2010.11.4
-------------------
New Games: Battle Cross, Battlantis, Bermuda Triangle, Calipso, Congo Bongo, Dock Man, Acrobatic Dog-Fight, Funky Fish, Freeze, Funky Bee, Future Spy, Galactic Warriors, Jack the Giantkiller, Joinem, Kick, Lover Boy, Mega Blast, Meta Fox, Metal Clash, Mikie, Minefield, Minky Monkey, Mole Attack, Monster Bash, Moonwar, Mister Viking, Qix, Roc'n Rope, Rompers, Satan of Saturn, Saturn, Super Mouse, Tazz-Mania, Traverse USA / Zippy Race, Valtric, Wall Crash, World Wars, Xain'd Sleena, Zoar, Zodiack, Zombie Raid, Zzyzzyxx (dna disturber)

Bug Fixes:
explorer had a bug in the XML where it was determining rank using non-reversed bytes.
exprraid modified in hiscore.dat to add new clones.
exprrada renamed to exprraida.
extrmatn modified in hiscore.dat to use non-legacy named clones.
frogger modified in hiscore.dat to use non-legacy named clones, and merged clones to parent.
galaga modified in hiscore.dat with documentation and merged clone gatsbee.
gijoe modified in hiscore.dat to merge gijoeu, and add gijoej.
...So many more hiscore.dat changes documented in the HiToText thread on BYOAC that I just thought I'd stop here: http://forum.arcadecontrols.com/index.php?topic=83614 (http://forum.arcadecontrols.com/index.php?topic=83614)

New Features:
New ExternalWrappers meant for "Name" ConversionTypes called PadLeft, and PadRight. They take two parameters, the first is the length you want the byte array to be. The second parameter is the byte to populate with.
Title: Re: HiToText (Version 2010.11.4).
Post by: dna disturber on November 05, 2010, 11:50:25 am
5 new games to add to the hitotext.xml :

TeddyBoy Blues + clone          -hiscore.dat :   added clone teddybbo
Terra Force + clones               -hiscore.dat :   added clones terrafa , terrafb
The Deep + clone                   -hiscore.dat :   added clone rundeep
Battle Chopper                       -hiscore.dat :   corrected the last name-entry (wrong length - missed a byte)
Lady Frog

Dna Disturber    :cheers:
Title: Re: HiToText (Version 2010.11.4).
Post by: dna disturber on November 09, 2010, 02:55:08 pm
5 more games to add to the hitotext.xml :

Space Fury + clones             -hiscore.dat:   added clones spacfurya , spacfuryb , spacfurb (old) , spacfurc (old)
X Multiply + clone                 -hiscore.dat:   added clone xmultiplm72
Vamp x1/2 + clones              -hiscore.dat:   added clone vamphalfk , vamphafk (old)  *Parent vamphafk can be deleted (put on commentary)
Van-Van Car + clones            -hiscore.dat:   added clone vanvans (old)
Vanguard + clones                -hiscore.dat:   added clones vanguardc , vanguardj   *vangrdce and vanguarj commentary added (old)

Dna Disturber     :cheers:
Title: Re: HiToText (Version 2010.11.4).
Post by: dna disturber on November 10, 2010, 10:17:59 am
5 new (not entirely because gyruss is already present in hitotext) games to add to the hitotext.xml :

Varia Metal + clone                     -hiscore.dat:  added entry vmetal + clone vmetaln (wasn't there yet)
Varth + clones
Vastar + clone
Venture + clones
Gyruss + clones (xml conversion)   -hiscore.dat:   added clone venus after matching the number of bytes to gyruss
                                                                    parent venus can be deleted ( put it on commentary )


Dna Disturber    :cheers:


Title: Re: HiToText (Version 2010.11.4).
Post by: PsychoMikey on November 11, 2010, 05:46:33 pm
Don't know if i can post this in this thread.

I can't save scores in arkanoid2 revange of doh (world). It does create a .hi file and in Hyperspin and i can see the scores for the default hiscore list. My hi score saving does work for example with mspacman.

I did try to run it with and without hyperlaunch, so that's not the problem. I'm running mame64 139, using the newest hiscore.dat and hitotext.exe/xml.
Also tried deleting all my old hi files and clearing the nvram dir in mame.

Any suggestions?
Title: Re: HiToText (Version 2010.11.4).
Post by: dna disturber on November 11, 2010, 07:03:05 pm
Don't know if i can post this in this thread.

I can't save scores in arkanoid2 revange of doh (world). It does create a .hi file and in Hyperspin and i can see the scores for the default hiscore list. My hi score saving does work for example with mspacman.

I did try to run it with and without hyperlaunch, so that's not the problem. I'm running mame64 139, using the newest hiscore.dat and hitotext.exe/xml.
Also tried deleting all my old hi files and clearing the nvram dir in mame.

Any suggestions?

PsychoMikey.

I've got good news and bad news
What do you want to hear first................ok the good news (yep I knew you wanted to hear the good news first)

The good news:
There is nothing wrong with your configuration. I tried it on my machine (mame 0.140 + latest hiscore.dat and hitotext) and got the same result.

The bad news:
It's probably a checksum in the game that resets the scoreboard every time you start a new game.
This has to be investigated further (meaning debugging and trying to find the checksum)....not sure tho if it really is a checksum.
It could also be that the hiscores are saved in another part of the memory and this is only the initial scoreboard (wild guessing here).
Will take a look at it but debugging is more Cananas's speciality........

Unfortunately no fast solution here...sorry  :-\

Dna Disturber  :cheers: 


 
Title: Re: HiToText (Version 2010.11.4).
Post by: dna disturber on November 11, 2010, 07:39:23 pm
Unfortunately no fast solution here...sorry  :-\

Dna Disturber  :cheers:  


@Psycho (better watch what I'm saying here)

Or maybe I do have a fast solution......Aren't  you glad I don't have a social life  ;D   :'(
I looked at it and it was indeed the memory of the initial scoreboard...
Found another scoreboard in the game and that one worked......    :blah:

I updated the hiscore.dat.... So if you grab the new hiscore.dat from fyrecrypts place and delete the old arknoid2.hi it should do the trick.
Tested it myself and it worked for me......
No change was necessary to hitotext.xml so only the new hiscore.dat needed.......
Let me know if it works for ya.

*** Only after the scoreboard has been on the screen for the first time a .hi is created (if you exit earlier no .hi for you  >:D ) ***

Dna Disturber    :cheers:
Title: Re: HiToText (Version 2010.11.4).
Post by: Cananas on November 12, 2010, 07:51:57 am
It's strange. I'm sure that worked before. I will try with older versions of MAME to know what has been changed.
Title: Re: HiToText (Version 2010.11.4).
Post by: dna disturber on November 12, 2010, 08:31:40 am
It's strange. I'm sure that worked before. I will try with older versions of MAME to know what has been changed.

Cananas you are right.

I also happen to have a complete mame 0.130 set and it did still work on that one.
Maybe it has something to do with this:
- 0.130u3: Aaron Giles merged memory maps in the TNZS driver.

The new entry fortunately works on both versions (no track and field multiple version stuff-like needed)

Dna Disturber    :cheers:
 
Title: Re: HiToText (Version 2010.11.4).
Post by: PsychoMikey on November 13, 2010, 04:24:06 am
@DNA Disturber

Yeah, Worked like a charm!! This is so awesome!

 :notworthy:Thank you so much!  :notworthy:
Title: Re: HiToText (Version 2010.11.4).
Post by: dna disturber on November 17, 2010, 04:55:36 pm
5 new (not entirely because violence fight is already present in hitotext) games to add to the hitotext.xml :

Victory Road + clone(s)                              -hiscore.dat :   added clone dogosokj   ;old
Violence Fight (xml conversion) + clone(s)     -hiscore.dat :   added clones viofightj , viofightu (and old ones viofighj , viofighu)
Wanted                                                   -hiscore.dat :   5 bytes were missing for the scores/names so added these to the entry
Warp & Warp + clone(s)                              -hiscore.dat :  added clones warpwarpr , warpwarpr2 (and old ones warpwarr , warpwar2)
Wiggie Waggie + clones(s)                          -hiscore.dat :   added clone superbar


Dna Disturber    :cheers:

P.S. :   342 games (clones) are missing from hitotext versus mame 0.140
I'm going to try to update the hitotext.xml to get a lot of them in (easy to do but takes some time -adjusting hiscore.dat and hitotext.xml and check if they work-).
A large number is however linked to the legacy driver but still hoping to get 200+ games in (xml).  :P
That would mean that the hitotext.xml is up to par with mameversion 0.140 clone-wise !    :applaud:

Title: Re: HiToText (Version 2010.11.4).
Post by: Fyrecrypts on November 17, 2010, 06:57:07 pm
5 new (not entirely because violence fight is already present in hitotext) games to add to the hitotext.xml :

Victory Road + clone(s)                              -hiscore.dat :   added clone dogosokj   ;old
Violence Fight (xml conversion) + clone(s)     -hiscore.dat :   added clones viofightj , viofightu (and old ones viofighj , viofighu)
Wanted                                                   -hiscore.dat :   5 bytes were missing for the scores/names so added these to the entry
Warp & Warp + clone(s)                              -hiscore.dat :  added clones warpwarpr , warpwarpr2 (and old ones warpwarr , warpwar2)
Wiggie Waggie + clones(s)                          -hiscore.dat :   added clone superbar


Dna Disturber    :cheers:

P.S. :   342 games (clones) are missing from hitotext versus mame 0.140
I'm going to try to update the hitotext.xml to get a lot of them in (easy to do but takes some time -adjusting hiscore.dat and hitotext.xml and check if they work-).
A large number is however linked to the legacy driver but still hoping to get 200+ games in (xml).  :P
That would mean that the hitotext.xml is up to par with mameversion 0.140 clone-wise !    :applaud:

Very nice! I'll be putting an update on Friday with your additions (and legacy subtractions =D ), and hopefully the DetermineRank issue we discussed earlier. Great work man!
Title: Re: HiToText (Version 2010.11.4).
Post by: snatex on November 23, 2010, 02:02:21 pm
I was hoping someone could help me out with Hitotext.

This is what I have done:

1 - Compiled MAME 0.140u1 with latest hiscore diff
2 - Downloaded latest hitotext w xml and put in hyperspin folder with hyperspin.exe
3 - Downloaded latest hiscore.dat and put in MAME folder with MAME.exe
4 - Edited Hyperlaunch MAME portion with Autohotkey to remove "Hotkey, %exitEmulatorKey%, CloseProcess" then recompiled.
5 - Made sure that hyperpin's setting.ini had HiScore section, Active = true

After editing hyperlaunch I am now getting .hi files to generate but when I achieve an actual hiscore it is crashing MAME. I played Donkey Kong and got a hiscore. When I exited I got a crash error box from MAME. Next time I tried to play Donkey Kong it was all messed up and DK was invisible, etc. So I deleted the .hi file and played again. It was now fine but when I got another hiscore and tried to exit it crashed again.

Can you help me get this setup properly?

Thanks.
Title: Re: HiToText (Version 2010.11.4).
Post by: PsychoMikey on November 23, 2010, 03:02:56 pm
My advise would be to first try without hyperspin to see if hiscore support is working properly. Maybe something went wrong during your compile of mame. Also try a few different games so you know if it is game specific. I'm running 138 and DK works perfect over here.
Title: Re: HiToText (Version 2010.11.4).
Post by: snatex on November 23, 2010, 07:57:40 pm
Just tested and it works perfect outside of hyperspin.  I'm thinking it has to be something with the way hyperspin is exiting MAME. 
Title: Re: HiToText (Version 2010.11.4).
Post by: dna disturber on November 24, 2010, 08:11:01 am
@snatex
Perhaps after editing there's a typo in the autohotkey ?
u-versions aren't the most reliable verions of mame by the way....I'm agreeing with PsychoMikey that it could also be a mame-thing

Just tested dkong with mame 0.140 with newest hiscore.dat (using hyperspin) and it worked.

Dna Disturber  :cheers:

Title: Re: HiToText (Version 2010.11.4).
Post by: snatex on November 24, 2010, 10:23:39 am
I tried using MAME without hyperspin several time and it recorded high scores fine and exited properly.  So I don't think its MAME.  I tried Hyperspin with and without Hyperlaunch.  Without Hyperlaunch the edited hyperlaunch doc shouldn't matter right? 
Title: Re: HiToText (Version 2010.11.4).
Post by: dna disturber on November 24, 2010, 10:47:51 am
I tried using MAME without hyperspin several time and it recorded high scores fine and exited properly.  So I don't think its MAME.  I tried Hyperspin with and without Hyperlaunch.  Without Hyperlaunch the edited hyperlaunch doc shouldn't matter right?  

No that is true......
Have you searched for similar problems in the hyperspin forum ?...........................cuz I'm drawing a blank here

Maybe you can set the winstate not to hidden to see how hyperspin launches mame ? (and then use the exact same command to see if that works without hyperspin)

Dna Disturber  :dizzy:
Title: Re: HiToText (Version 2010.11.4).
Post by: snatex on November 25, 2010, 10:02:43 am
I have it working now.  Thanks for your help.  DNA I took your suggestion to compile 0.140 and it works fine now. 
Title: Re: HiToText (Version 2010.11.4).
Post by: dna disturber on January 13, 2011, 06:18:20 am
3 new games to add to the hitotext.xml :

My Hero + clone(s)                                                 -hiscore.dat : joined clones to myhero
Mysterious Stones - Dr. John's Adventure + clone(s)    
Fly-Boy + clone(s)                                                  -hiscore.dat : joined clones to flyboy (should now be parent)

Dna Disturber    :cheers:
Title: Re: HiToText (Version 2010.11.4).
Post by: secret80sman on January 19, 2011, 11:27:44 am
FireCrypts,
I hope your daughter is doing well, I have one of my own who is 2 and I know how it is.

I was wondering if there was any thought to resuming the Ghost project. Being able to see my buddie's scores sounds like a dream come true and I think the application would really take off in the MAME community. I rather liked your old name HiScanner better but I'm sure you had a reason for the name change, I've not read through the entire thread here so I'm sure it is in there somewhere.

Thanks!
Title: Re: HiToText (Version 2010.11.4).
Post by: Fyrecrypts on January 22, 2011, 07:59:53 pm
Apparently my notification e-mails weren't working for me very well. I have been very busy with personal life and another project, but I have no plans of stopping work on this one. Sorry if I worried anyone, there's just only so many ways to be pulled I guess. =)

I have an update with a lot of work from dna disturber, and a couple handlers via SourceForge. I have been meaning to get a particular update in that's a little complicated, but haven't found an elegant solution yet, so I may release with just the XML updates.

As for GHOST (Gaming Host for Online Score Tracking), it worked fairly well, but only under a very specific set of circumstances. It worked differently than HiScanner in that it read directly from memory to look for high scores instead of reading the file. This meant that high scores couldn't be manipulated from files, and it could save scores globally. Sort of a real-time Twin Galaxies with MAME. The problem I ran into that sort of stopped development was that depending on the version of MAME you used the memory "keys" that were used to track the actual scores while playing would or wouldn't exist. This meant I either had to force people to play a certain outdated version, or update the keys every time MAME changed for every single game, and then force everyone to only use the latest versions of MAME. It became a sort of impossible issue to resolve. =/

HiScanner read the .hi files and would import from other users as well, it was hard to configure, very user unfriendly, and has a very old code base now. It'd probably be smarter if I was going to startup HiScanner again to redo it. The code base for HiToText is open source, and I was hoping people would use it themselves to make other projects involving hi scores, but so far, only one team had. They were essentially making HiScanner using HiToText, but that was when I was working on GHOST. I think they abandoned the project when they heard about what GHOST was, which is too bad, I think we could have co-existed just fine.

Also, my daughter's doing fine, so is my son, thanks for asking. =) They are a handful though. Heh. =D
Title: Re: HiToText (Version 2010.11.4).
Post by: secret80sman on January 26, 2011, 09:24:18 am
FireCrypts,
Many thanks for the update, it is greatly appreciated. Also glad to hear the family is doing well mine are a handful as well.

I don't know about the community at large but I know if I had an app that allowed me to connect to my personal friends somehow I would be happy. We are mostly concerned with beating people's scores we now not world champions I would think (most of us who aren't amazing at any one game in particular). Any thought on how to EASILY do something like this perhaps blending the different apps so far developed?

I'm not a coder so although I appreciate your efforts I have no real world idea what is involved with this so just putting it out there.

Thanks!
Title: Re: HiToText (Version 2010.11.4).
Post by: dna disturber on January 31, 2011, 01:55:23 pm
Instead of just randomly picking games maybe someone has a request ?
Is there a game in your favo list that doesn't have hitotext support.....and you want it to have.....

No nvram games please (because that's not gonna show up in hyperspin) and it must create  a .hi file (in other words it already has an entry in hiscore.dat)

Dna Disturber  :cheers:

Can't promise that i'll get it working but will do my best....  :angel:
When I do get it working it's gonna be in a future release of hitotext or you can add it manually to the xml of course (if you just can't wait  ;D )
Title: Re: HiToText (Version 2010.11.4).
Post by: headkaze on March 31, 2011, 11:47:41 am
hiscore.dat-astic website is displaying an error when generating the file

Quote
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'fyrecryp_HiScore'@'localhost' (using password: YES) in /home/fyrecryp/public_html/HiScoreDat/connect.php on line 7
Can't connect to MySQL
Title: Re: HiToText (Version 2010.11.4).
Post by: Fyrecrypts on March 31, 2011, 11:48:59 am
Having some hosting issues. =/
Title: Re: HiToText (Version 2010.11.4).
Post by: Fyrecrypts on March 31, 2011, 12:42:48 pm
It's back up. Sorry about the downtime. =(
Title: Re: HiToText (Version 2010.11.4).
Post by: TheManuel on May 25, 2011, 03:05:50 pm
I meant to post this here, but posted it instead in the Hyperspin forum  :dizzy:.

Is there a way to get defender and robotron (maybe others) to display "Today's Top Scores", rather than "All-Time Top Scores" in HiToText?

Also, is the xml file available at sourcefourge, dated Nov 2010, the latest available?
Title: Re: HiToText (Version 2010.11.4).
Post by: dna disturber on May 31, 2011, 01:34:56 am
Hi TheManuel,

I'm afraid it's only the all-time topscores..... :-\
The date on the xml-file sounds about right...

I haven't seen Fyrecrypts around lately.....I think real life is getting in the way of this hobby
I sent him an update of the xml-file a while ago but it hasn't been published yet...(contained support for a lot of clones 100+ and some new games)


Dna Disturber    :cheers:

P.S. If you practise enough you don't even need the today top scores   >:D  
But maybe I have a solution to get to the all time top scores.....(if that is the problem ?)
You can also wipe and write scores using hitotext (commandline) , then you can set them to a lower score.....(use hitotext -? on the commandline for the commands )
Let me know if that works for you.......

 

 

Title: Re: HiToText (Version 2010.11.4).
Post by: TheManuel on May 31, 2011, 08:34:37 am
Thanks for your reply and your hard work on increasing compatibility of hitotext, dna.

I think you are right.  I simply have to get better at the game and "deserve" being on those top scores.  I'll go that route.

Too bad the project has slowed down but can't blame Fyrecrypts.  He's done a lot already and this is a hobby, like you said.  I'm personally on and off it all the time.

Regards!
Title: Re: HiToText (Version 2010.11.4).
Post by: dna disturber on May 31, 2011, 10:25:47 am
Too bad the project has slowed down but can't blame Fyrecrypts.  He's done a lot already and this is a hobby, like you said.  I'm personally on and off it all the time.
Regards!
I don't blame Fyrecrypts at all....
Some things are way more important than a hobby.....

It was just a comment on the date of the xml......definitely no intention of blaming anyone......

Dna Disturber      :cheers:
Title: Re: HiToText (Version 2010.11.4).
Post by: TheManuel on May 31, 2011, 10:29:07 am
It was just a comment on the date of the xml......definitely no intention of blaming anyone......

It definitely did not come across that way.
Title: Re: HiToText (Version 2010.11.4).
Post by: dna disturber on May 31, 2011, 11:34:31 am
It was just a comment on the date of the xml......definitely no intention of blaming anyone......

It definitely did not come across that way.

Okay didn't realise it had that effect.... :-\

@Fyrecrypts  If you're reading this... I had no intentions of being disrespectful...if it came across that way...my apologies..   :cheers:
Title: Re: HiToText (Version 2010.11.4).
Post by: TheManuel on May 31, 2011, 11:37:42 am
It was just a comment on the date of the xml......definitely no intention of blaming anyone......

It definitely did not come across that way.

Okay didn't realise it had that effect.... :-\

@Fyrecrypts  If you're reading this... I had no intentions of being disrespectful...if it came across that way...my apologies..   :cheers:

No, no, no.  Sorry!!!
It's my fault.
I meant to say that it did not sound in any way as if you were bashing Fyrecrypts.

Sorry I messed up the wording there  :(
Title: Re: HiToText (Version 2010.11.4).
Post by: dna disturber on May 31, 2011, 11:57:21 am
It was just a comment on the date of the xml......definitely no intention of blaming anyone......

It definitely did not come across that way.

Okay didn't realise it had that effect.... :-\

@Fyrecrypts  If you're reading this... I had no intentions of being disrespectful...if it came across that way...my apologies..   :cheers:

No, no, no.  Sorry!!!
It's my fault.
I meant to say that it did not sound in any way as if you were bashing Fyrecrypts.

Sorry I messed up the wording there  :(

 :laugh2:  I thought it had something to do with the fact that english isn't my native language and that something came out wrong.....
It's rather funny....
no worries....it's all good.............. :cheers:
Title: Re: HiToText (Version 2010.11.4).
Post by: TheManuel on May 31, 2011, 11:59:22 am
 ;D  English is not my native language either.

I did not notice it in your case until you told me, though.
Title: Re: HiToText (Version 2010.11.4).
Post by: spoot on June 08, 2011, 03:16:08 pm
The code base for HiToText is open source, and I was hoping people would use it themselves to make other projects involving hi scores, but so far, only one team had. They were essentially making HiScanner using HiToText, but that was when I was working on GHOST. I think they abandoned the project when they heard about what GHOST was, which is too bad, I think we could have co-existed just fine.

Well, I was bored the other day and started one.   :o   General idea so far is central server to store/host all scores/data.  Users would be identified by a unique key they/server generates.   If someone is flagged as a cheater the admin can check a tickbox and boom, that user's scores no longer get shared/displayed.   Users could setup their own groups as well so only those within the group get seen or shared data too.

Developing in Linux mainly atm..but will run on Windows and MacOSX when "done".....if I ever get done that is I spose.   :angel:

Oh well, off to look at code.......I better grab some brews first.   :cheers:
Title: Re: HiToText (Version 2010.11.4).
Post by: Dan_Dan_91_07 on July 10, 2011, 06:06:26 pm
Post deleted - sorry


Title: Re: HiToText (Version 2010.11.4).
Post by: Fyrecrypts on August 09, 2011, 12:28:31 am
It was just a comment on the date of the xml......definitely no intention of blaming anyone......

It definitely did not come across that way.

Okay didn't realise it had that effect.... :-\

@Fyrecrypts  If you're reading this... I had no intentions of being disrespectful...if it came across that way...my apologies..   :cheers:

I usually do get updates to this thread, but missed this. Don't see anything disrespectful. I have been MIA lately quite a bit. I should really integrate DNA's additions, I had some code changes I had wanted to make as well. I'll see what I can round up. =)
Title: Re: HiToText (Version 2010.11.4).
Post by: dna disturber on August 10, 2011, 03:59:58 am
I see the restraining order from a certain Mr. Brand has been processed......     :laugh2:  (cool pic by the way)
Stalking the poor man has taken quite some MIA time here...              ;D

Welcome back man....   :cheers:

Quick question
Do you know how BBB's hyperspin 2.0  will display HitoText ?

Would also be great to know if nvram and multiple tables will work in the new version

 
Dna Disturber  :cheers:

 



 
Title: Re: HiToText (Version 2010.11.4).
Post by: headkaze on October 05, 2011, 12:22:18 pm
I'm going to bump this thread as a few people have reported HiToText crashing recently.

If HiToText crashes please post as much information as you can about the error here.
Title: Re: HiToText (Version 2010.11.4).
Post by: Hunk_4TH on October 05, 2011, 12:50:36 pm
HiToText seems to be crashing for me in GameEx. I'm using Mame 143U6 that i compiled myself and applied the patch. This has been happening throughout 143 and it's U builds :( I could post my GameEx log if that would help?  :cheers:
Title: Re: HiToText (Version 2010.11.4).
Post by: Hunk_4TH on October 06, 2011, 05:29:05 pm
Anyone?
Title: Re: HiToText (Version 2010.11.4).
Post by: Hunk_4TH on October 13, 2011, 10:04:44 pm
This crashes in Hyperspin as well :(
Title: Re: HiToText (Version 2010.11.4).
Post by: Hunk_4TH on October 15, 2011, 02:26:56 pm
I guess this is a dead project?  :(
Title: Re: HiToText (Version 2010.11.4).
Post by: headkaze on October 15, 2011, 08:47:49 pm
Have you tried to track down Fyrecrypts e-mail? It might be best to try and contact him that way.

BTW Are you using a hiscore.dat generated using hiscore.dat-astic (http://www.hitotext.com/HiScoreDat/index.php)?
Title: Re: HiToText (Version 2010.11.4).
Post by: Hunk_4TH on October 15, 2011, 09:34:22 pm
Thanks for the link headkaze, I forgot about checking that link. Looks mine is from 2009 :( I should have checked there before. I haven't tried yet. I'll try in a little while. If it doesn't work I'll try tracking down his email. Sorry for all the bumping. Thanks for your help!  :cheers:
Title: Re: HiToText (Version 2010.11.4).
Post by: dezblack on November 06, 2011, 06:11:40 pm
I have constant crashes in 143u9 as well. I have tried a few different compiles with different settings, all using the official hi_143u9.diff . I also tried deleting the .hi file for various games and seeing if it will work after. Nope. Can anyone with a working 143u9 verify what settings were used to compile to make this work? If not, I guess my next compile will just be without the hitotext support, sadly =\.  It is getting annoying having an error popup on all my favorite games.

I do hope all is well with anyone involved in making this project what it is..
Title: Re: HiToText (Version 2010.11.4).
Post by: Hunk_4TH on November 13, 2011, 06:08:16 pm
Sorry for the late post. But it doesn't look like this project is is being worked on anymore. The dev hasn't been around in awhile :(
Title: Re: HiToText (Version 2010.11.4).
Post by: dna disturber on December 12, 2011, 10:25:37 am
There have been earlier troubles with people using the u-versions....
When they used the official release and compiled that one it all worked (again).

So my advice would be only to use the official releases.....

Dna Disturber  :cheers:

P.S. Can't help otherwise I'm afraid , Fyrecrypts is not really active anymore on the forum....
Just one thing I can remember is that people had stuff from old versions of hitotext in their folder and that caused crashes.....
Title: Re: HiToText (Version 2010.11.4).
Post by: dezblack on December 12, 2011, 09:48:40 pm
Thanks for the info, I can unfortunately confirm it does not work with 144.
Title: Re: HiToText (Version 2010.11.4).
Post by: headkaze on December 05, 2012, 10:46:41 pm
Does anyone know what version of MAME the hiscore.dat generated using hiscore.dat-astic (http://www.hitotext.com/HiScoreDat/index.php) is based on? It doesn't actually say in the file what version.
Title: Re: HiToText (Version 2010.11.4).
Post by: Fyrecrypts on January 16, 2013, 03:38:49 pm
Does anyone know what version of MAME the hiscore.dat generated using hiscore.dat-astic (http://www.hitotext.com/HiScoreDat/index.php) is based on? It doesn't actually say in the file what version.

I believe I stopped development after 0.139.

Edit:
I very much enjoyed working on this project, but as time went on my interest faded, and the work became repetitive. After having my second child, taking on new responsibilities at work, and a separate project taking over my interest I decided to put HiToText on the back burner. Fast forward to now, and I have a new and more demanding job, a third kid, and that side project I'm working on has blown up within that community and taken over what little spare time I actually still have. My interest in MAME has waned severely as well, which hasn't helped.

I would like to apologize for not giving any updates or information for the past few years, and honestly, I didn't really know it was missed. It's such a small drop in the vast MAME community bucket, and everything was open-sourced (free-sourced, you can even make commercial projects out of the code if you wanted) I kind of assumed people would use it and augment it how they needed, or continue to contribute to the hiscore.dat and HiToText.xml file. If I've forgotten some piece of code, I do still have all my older project folders and stuff in the cloud, but I'm fairly sure it's all there on sourceforge or even the arcadecontrols forum link. Should have everything.

Sorry all, but I don't have plans to continue working on HiToText, and I'm sorry for not informing everyone at the time of my decision years ago. =(
Title: HiToText (Version 2010.11.4).
Post by: secret80sman on January 16, 2013, 10:02:51 pm
Does anyone know what version of MAME the hiscore.dat generated using hiscore.dat-astic (http://www.hitotext.com/HiScoreDat/index.php) is based on? It doesn't actually say in the file what version.

I believe I stopped development after 0.139.

Edit:
I very much enjoyed working on this project, but as time went on my interest faded, and the work became repetitive. After having my second child, taking on new responsibilities at work, and a separate project taking over my interest I decided to put HiToText on the back burner. Fast forward to now, and I have a new and more demanding job, a third kid, and that side project I'm working on has blown up within that community and taken over what little spare time I actually still have. My interest in MAME has waned severely as well, which hasn't helped.

I would like to apologize for not giving any updates or information for the past few years, and honestly, I didn't really know it was missed. It's such a small drop in the vast MAME community bucket, and everything was open-sourced (free-sourced, you can even make commercial projects out of the code if you wanted) I kind of assumed people would use it and augment it how they needed, or continue to contribute to the hiscore.dat and HiToText.xml file. If I've forgotten some piece of code, I do still have all my older project folders and stuff in the cloud, but I'm fairly sure it's all there on sourceforge or even the arcadecontrols forum link. Should have everything.

Sorry all, but I don't have plans to continue working on HiToText, and I'm sorry for not informing everyone at the time of my decision years ago. =(
thanks so much Fyrecrypts. Does anyone have the know how and time to resume development and start this back up?
Title: Re: HiToText (Version 2010.11.4).
Post by: Funkoid on September 25, 2013, 08:39:43 am
I'd love to see support for this project continue, its a great little app and has some seriously useful features. Maybe we should get the ball rolling with more supported games first though?

Edit - Am I correct in saying that as the rom files change per version of mame the hitotext application would need updating or are we only talking adding things into the XML file?
Title: Re: HiToText (Version 2010.11.4).
Post by: GreatStone on July 31, 2014, 01:57:43 am
Hi guys,

I am currently spending some time on hitotext to decode high-score files as text.
I am rewriting it from scratch (code+xml+mame 0.153 compatibility=>"new" hi2txt utility), as a hobby and for my personal purpose (learning Java, XML modelization, manipulations at byte level), as it seems to be no more maintained.
I am sharing it now, as perhaps it can raise some interest for other people.
Feel free to use it, read the doc, give some improvements idea: contributions to add more games are also are welcome! :)
Huge thanks for Fyrecrypts and all contributors of original hitotext!
Note: perhaps I need to make a new thread as this one is somewhat old?
Home of hi2txt: http://greatstone.free.fr/hi2txt/hi2txt.html (http://greatstone.free.fr/hi2txt/hi2txt.html)
Title: Re: HiToText (Version 2010.11.4).
Post by: dna disturber on August 03, 2014, 12:27:52 pm
 Hi GreatStone,

Nice to see you working on this.
It's a nice feature and hopefully people can enjoy it again.
I saw a big percentage of games supported , does this mean all the code is already in from the old hitotext?
If not maybe there are a couple you can use in this thread.

I really enjoyed working on decoding the games, countless hours finding the right bytes and such.
Some were really tough to crack...

After hitotext i decided to make somewhat similar for pinmame.
Pinemhi and an online scoringboard as well (pinemhi leaderboard). Never would have existed without hitotext  :applaud:
I left out the writing part to the nvrams , checksums are not my thing :'(

Luckily the roms and nvrams don't change very much with pinmame, as that was the biggest problem with hitotext.
With another mamerelease a number of games had to be fixed..

Keep up the great work , will surely be following your project (in this thread or another)

 Dna Disturber :cheers:

-edit- i really need to change the percentages in my signature.... :)


Title: Re: HiToText (Version 2010.11.4).
Post by: GreatStone on August 09, 2014, 07:59:13 am
Hello Dna Disturber,

> Nice to see you working on this.
Thanks! I have seen that you were a big contributor in the old hitotext. Perhaps you will join the new one, one day?

> I saw a big percentage of games supported , does this mean all the code is already in from the old hitotext?
All the games supported by the old hitotext have been ported, updated and tested versus mame 148/153, using the new proposed XML format.
No code has been used from hitotext in the new tool, and all hard-coded parts have been also migrated into the new XML format, providing something -I hope- flexible enough to handle any situation.

> Pinemhi and an online scoringboard as well (pinemhi leaderboard)
I am still dreaming about a mame leaderboard, allowing to easily share at least scores with a group of friends...

> Keep up the great work , will surely be following your project (in this thread or another)
I have also dropped the 'write' feature of the old tool, mainly because checksum reverse engineering will take me too much time. If I want this project to be sustainable, I should have a raisonnable target first :)
Again, seeing your past involvment, feel free to give some help if such stuff still motivates you, obviously.

Best regards,
G.

Title: Re: HiToText (Version 2010.11.4).
Post by: GreatStone on August 09, 2014, 08:04:15 am
A new release (1.1@20140809) today for hi2txt  ;D
=> huge focus on toaplan games and a contribution from William L. (Pang).

What's new?
    new games supported:
         V-Five, Grind Stormer, Vimana, Vanguard II, The Amazing Adventures of Mr. F. Lea
         Jin, Metal Soldier Isaac II, Vapor Trail, Kuhga, Spac Force, Meteoroids,
         Armed Police Batrider, Battle Bakraid, Battle Garegga, 1945 Part-2, Dogyuun,
         FixEight, Ghox, Knuckle Bash, Kingdom Grandprix, Shippu Mahou Daisakusen,
         Sorcer Striker, Mahou Daisakusen, Pipi & Bibis, Whoopee, Teki Paki, Truxton II, Demon's World
         Pang, Pomping World, Buster Bros. [XML from William L. => Thanks!]
    better format@formatter possibilities
    new 'txt' element for better XML readibility
    minor fixes

Grab it here: http://greatstone.free.fr/hi2txt/hi2txt.html (http://greatstone.free.fr/hi2txt/hi2txt.html)

Regards,
G.
Title: 'hi' files to text => hi2txt v1.2220140901 [Re: HiToText (Version 2010.11.4).]
Post by: GreatStone on September 04, 2014, 02:12:38 pm
A new release of hi2txt (1.2@20140901), a little bit shmup oriented...

What's new?

    new games supported:
         Guwange, DonPachi, Fever SOS / Dangun Feveron, Fire Shark,
         Hellfire, Same! Same! Same!, Rally Bike, Truxton / Tatsujin,
         Zero Wing, Battle K-Road, Gunbird, Gunbird 2, Samurai Aces / Sengoku Ace
         Tengai, Strikers 1945, Strikers 1945 III / Strikers 1999, Space Bomber
         Sol Divide, Tetris The Absolute The Grand Master 2/+, Gunbarich
         note: for guwange, it was a great pleasure to learn sokuon, youon, dakuten,
               handakuten, Hepburn romanization and the Iroha poem :)

    games updated for hiscore.dat 2014-08-22:
          Espgaluda, Nightmare in the dark, Major Havoc, Ketsui, Dazzler, V-Five

    XML engine improved, for easier 'hi/nvram' files description:
          japanese Hiragana defined as entities
          add pre-defined charset for number
          new operation 'uppercase' is supported for format
          new operation 'shift' is supported for format
          new attribute 'skip-first-bytes' and 'skip-last-bytes' for loop
          different groups of 'case' are supported inside the same format definition
          new attribute 'empty' and 'consume' for prefix and suffix operations
          minor fixes

Grab it here: http://greatstone.free.fr/hi2txt/hi2txt.html (http://greatstone.free.fr/hi2txt/hi2txt.html)

Have a happy scoring time!!
GreatStone
Title: Re: HiToText (Version 2010.11.4).
Post by: Hunk_4TH on September 10, 2014, 04:04:32 pm
Very very nice man! Thanks so much for working on this GreatStone!:D
Title: Hi2txt 1.3@20141004
Post by: GreatStone on October 04, 2014, 04:20:50 pm
Thanks for your support Hunk_4TH :) It's always appreciated.
And now, it's time for a release of hi2txt (1.3@20141004)!

What's new?

     54 new games supported!
          Puzzle Uo Poko, Puzzle Mushihime-Tama!, Gyrodine, Planet Probe, Repulse/'99: The Last War,
          Dimahoo/Great Mahou Daisakusen, Air Gallet, Air Assault, Battle Chopper/Mr Heli,
          The Battle-Road, Cosmic Cop/Gallop Armed Police Unit, Demoneye-X, Dragon Breed,
          Gunforce, Gunforce II/Gep Storm, In The Hunt, Lethal Thunder/Thunder Blaster, Ninja Spirit,
          R-Type Leo, Tiger Heli, Wardner, Mars Matrix, Darius, Acrobat Mission, Saint Dragon,
          P-47 The Phantom Fighter, P-47 Aces, Wiz, Stinger, Darius II, G-Darius, Scion, Rug Rats,
          Hot Chase, Warp & Warp, Vulgus, Ultraman, Vulcan Venture, Hard Puncher, Tutankham,
          Tumble Pop, Toypop, Libble Rabble, Top Speed, Plump Pop, Insector X, Dr. Toppel's Adventure,
          Chuka Taisen, Bells & Whistles/Detana! Twin Bee, Super Contra, Thief, Gemini Wing,
          The New Zealand Story

     XML engine improved, for easier 'hi/nvram' files description:
          new format operation 'divide_round'
          new format operation 'round'
          new format operation 'capitalize'
          new format operation 'lowercase'
          new format operation 'loopindex'
          new @direction="both" for format operation 'trim'
          lot of new implicit format syntaxes
          minor improvements and fixes

As usual, everything (including full documentation), is here: http://greatstone.free.fr/hi2txt/hi2txt.html (http://greatstone.free.fr/hi2txt/hi2txt.html)

Any comments? or request?
GreatStone
Title: Re: HiToText (Version 2010.11.4).
Post by: Hunk_4TH on October 05, 2014, 09:07:59 pm
No problem man! Thanks for working on this and uploading a new version :D
Title: Re: Hi2txt 1.3@20141004
Post by: arquillos on January 12, 2015, 10:33:53 am
Thanks for your support Hunk_4TH :) It's always appreciated.
And now, it's time for a release of hi2txt (1.3@20141004)!


Any posibilities of porting this Java code to .NET or something somilar?
Title: Re: HiToText (Version 2010.11.4).
Post by: arquillos on January 19, 2015, 07:34:40 am
Hi!
   anyone still has the original version pdfs: Schematics and Documentation

First post links are down :(


Thank you in advance!
Title: hi2text 1.4
Post by: GreatStone on September 13, 2015, 03:34:38 am
I was working hard to improve the current engine, add some games and also create/maintain a native C# version, additionally to the Java one.
I hope it will please arquillos, even if it took time...
So, it's time to release hi2txt 1.4!

What's new?

   18 new games supported + many clones!
         Play Girls 2, Palamedes, Fighting Hawk, Pirate Pete, Gun & Frontier, Liquid Kids,
         Metal Black, Super Space Invaders '91, Space Invaders '95: The Attack Of Lunar Loonies,
         Bubble Bobble II, Bubble Symphony, Grid Seeker: Project Storm Hammer, Ray Force,
         Kyukyoku Tiger II, Raiden DX, Raiden II, Tiger Road, Kamikaze [XML from Piergiorgio G.]

   games updated for hiscore.dat 2015-07-01: many!
   games updated for hiscore.dat 2015-01-31: many!

   hi2txt general improvements:
        a native C# version exists!
        output customization and filtering, through command-line parameters (see doc for more information)
              -score-grouping, -score-grouping-separator, -score-grouping-size
              -keep-field, -keep-table-value, -keep-first-score, -keep-first-table, -hide-field
              -max-lines, -max-columns
        support Unicode characters
        all XML can be stored inside a hi2txt.zip file
        unknown clone is extractable if at least one games of the same family (see hiscore.dat content) is supported

   XML engine improved, for easier 'hi/nvram' files description:
        multiple <structure>, <output> and link between them can be defined for the same game, to support different versions of hiscore.dat
   
As usual, everything (including full documentation), is here: http://greatstone.fr...txt/hi2txt.html (http://greatstone.fr...txt/hi2txt.html)
Feedback is welcome as well as game support request  :)

GreatStone
Title: Re: HiToText (Version 2010.11.4).
Post by: arquillos on September 13, 2015, 03:36:56 pm
GreatStone!!!!! Cool!!!!!!  :applaud:  :applaud:  :applaud:  :applaud: :applaud:  :applaud:  :cheers:

I have to try it ASAP!!!!

Thank you very much!
Title: hi2txt v1.5!
Post by: GreatStone on October 03, 2015, 12:18:00 pm
v1.5 released!

What's new?

    23 new games supported
        Dragon Spirit, Armored Warrior, After Burner, After Burner II, Dungeons & Dragons: Shadow over Mystara,
        Dungeons & Dragons: Tower of Doom, Operation Wolf, Operation Thunderbolt, Nebulas Ray, Final Star Force,
        Fire Battle, MX5000, Dyger, Change Air Blade, Chopper, Legion, Twin Hawk, Cyvern, A.B. Cop, Ace Attack,
        Dragon World II, Zero Team, Side Arms, Crypt Killer

    hi2txt general improvements
        decoding speed significantly improved
        xml files now bundled as one zip for easier installation
        now compatible with HyperSpin -> installation guide:
            1.copy hi2txt.exe and hi2txt.zip in the same folder than HyperSpin.exe
            2.rename hi2txt.exe into HiToText.exe

As usual, everything (including full documentation), is here: http://greatstone.fr...txt/hi2txt.html (http://greatstone.fr...txt/hi2txt.html)
Feedback is welcome as well as game support request  :)

Have a good day!
GreatStone
Title: hi2txt v1.6
Post by: GreatStone on November 28, 2015, 08:38:31 pm
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

Everything is here: http://greatstone.free.fr/hi2txt/index.html (http://greatstone.free.fr/hi2txt/index.html)
Feedback is welcome as well as game support request or help  :)
Cheers!

GreatStone
Title: hi2txt v1.8
Post by: GreatStone on February 18, 2017, 10:35:49 am
v1.8 released!

What's new?
    Some contributions from T. Busse (14 games) and Japi (3 games): Thanks a lot!! :)

    38 new games supported, and many many clones:
Andro Dunos, Armored Scrum Object, Alpha Mission 2, T.N.K III, Fighting Golf, Psycho Soldier, Touch Down Fever, Fighting Soccer, Side Trak, Space Thunderbird, Omega, Pop Flamer, Wizard of Wor, War of the Bugs, Vs. Dr. Mario, Nibbler, Solomon's Key, Bosconian, The Empire Strikes Back, Road Fighter, Star Wars, Rally X, Turtles, Astro Blaster, Cosmic Avenger, Depthcharge, Mr. Do's Castle, Vs. The Goonies, Pitfall II, Space Cruiser, Space Bird, Space Fury, Zero Hour, Bang Bang Busters, Iron Clad, Crossed Swords 2, Cyber-Lip, Eightman, Ghost Pilots, Ghostlop

    engine improvements: full support the new hiscore.dat from the lua plugins of mame.

Everything is here: http://greatstone.free.fr/hi2txt/ (http://greatstone.free.fr/hi2txt/)
Warm regards,

GreatStone
Title: Re: HiToText (Version 2010.11.4).
Post by: GreatStone on December 22, 2017, 07:28:37 am
v1.9 released!

What's new?
    Some contributions from T. Busse (11 games): Thanks a lot!! :)

    47 new games supported:
Star Force, Rescue, Mysterious Stones - Dr. John's Adventure, Hunchback, Splat!, Space Zap, Sinistar, Reactor, Jr. Pac-Man, Bubbles, Blaster, Stargate, Diamond Run, Super Pac-Man, Invader's Revenge, Krull, Arabian, Seicross, Pepper II, Space Panic, Mouse Trap, Mad Planets, Venture, Fantasy, Vanguard, Lost Tomb, Jump Bug, Moon Quasar, Moon Base Zeta, Space Invaders Deluxe, Galaxy Wars, Gorf, Raiden DX, Forgotten Worlds, Galaga 3, The Empire Strikes Back, The Pit, Mirax, Mega Zone, Blasteroids, NATO Defense, Gaplus, Dawin 4078, Vs. Battle City, Halley's Comet, Horizon, ...

    All games from mame 0.1 to 0.24 are supported

    Clones aligned to mame 0.192 hiscore.dat

Everything is here: http://greatstone.free.fr/hi2txt/ (http://greatstone.free.fr/hi2txt/)
Cheers and happy Christmas!

GreatStone
Title: Re: HiToText (Version 2010.11.4).
Post by: headkaze on December 24, 2017, 12:05:28 am
Thanks and Merry Christmas to you too!  :cheers:
Title: Re: HiToText (Version 2010.11.4).
Post by: DaredevilDave on December 26, 2017, 07:20:07 pm
I just discovered this and it's awesome! Thank you very much!

I'd like to display the #1 high score for say 20 games simultaneously. Like a leaderboard that automatically reads from each game.

Is there a way to dump all data into a single file instead of reading separate text files for every game?

Is there a way to batch run this for all games in a folder? I have 230 games. I could write a little script to do all of this actually. Just wondering if there any functions I have missed. I've read through the command line parameters.

Thanks again!
Title: Re: HiToText (Version 2010.11.4).
Post by: DaredevilDave on December 28, 2017, 01:57:46 am
I have added a High Score feature to my custom made front end. It reads from the individual game txt files as you scroll through the game select menu.

I am now trying to make a good way to create all the text files. I'm trying updating each games TXT file at game exit, or more specifically, when the front end regains focus. I want the hiscore to be available as soon as the player exits a game. Works great so far!

Very nice!
Title: Re: HiToText (Version 2010.11.4).
Post by: arquillos on December 30, 2017, 12:12:02 pm
Thank you GreatStone for the new version!
It´s a great cabinet add-on!!
Keep up the good work
Title: Re: hi2txt v1.6
Post by: mike5im5 on June 21, 2018, 09:00:13 am
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

Everything is here: http://greatstone.free.fr/hi2txt/index.html (http://greatstone.free.fr/hi2txt/index.html)
Feedback is welcome as well as game support request or help  :)
Cheers!

GreatStone

Does anyone know how to support nvram file? Seems to look for .hi file by default.
Title: Re: HiToText (Version 2010.11.4).
Post by: TheManuel on October 23, 2018, 08:29:00 am
GreatStone:  I'm thrilled that you have continued this work.  This was one of the last things I implemented when I did a major overhaul to my cab about 7 years ago, and I had thought it was a great idea.  I'm back to updating many hardware and software features in my cab after all those years of neglect, and I replaced Firecrypt's original files with yours. 

However, I've noticed that with hi2txt enabled in Hyperspin, a significant delay is created when moving the wheel from one game to the next.  It makes the theme animation pause for about half a second. 

Do you think this is caused by hi2txt looking inside the .zip database for the game being shown on the wheel?
If so, would it help if I prune the database so that it only contains the game I have installed on my cab?

Thanks for a great job on this.
Title: hi2txt 1.10
Post by: GreatStone on September 08, 2019, 01:02:17 pm
Ok, we are nearly 2 years after the last message :) Months are running at an incredible speed!

I found some time to add 38 new games (again with contributions from T. Busse), 170 new clones, rework java and C# sources to be more closer to each other, slightly update the engine (check xml documentation for byte-trunc instruction), and greatly improved an internal function to try to automatically found the encoding algorithm of a specific hiscore file. So, yes, the project is still alive!

Games: R2D Tank, Radar Scope, Guardian, Prehistoric Isle in 1930, Prehistoric Isle 2,  Wild Western, The Three Stooges In Brides Is Brides, Black Widow, Gravitar,  Space Duel, Eggs, Eliminator, Exed Exes, Loco-Motion, Pac & Pal, Start Trek, Tac/Scan, Warlords, Zektor, Snap Jack, Son Son, Demolition Derby, Espial, Kozmik Kroozr, Omega Race, Rampage, Satan's Hollow, Solar Fox, Spy Hunter, Time Pilot '84, Two Tigers, Wacko, Fire Truck, The Ninja Warriors, Gradius III, Lode Runner, Rainbow Island, Viewpoint, Youjyudn.

all games from mame 0.1 to 0.28 are supported

clones aligned to mame 0.212 hiscore.dat

Everything is here: http://greatstone.free.fr/hi2txt/index.html (http://greatstone.free.fr/hi2txt/index.html)

I still have to understand potential slowdown with Hyperspin?
Title: Re: hi2txt 1.10
Post by: arquillos on September 08, 2019, 11:38:16 pm
Ok, we are nearly 2 years after the last message :) Months are running at an incredible speed!

I found some time to add 38 new games (again with contributions from T. Busse), 170 new clones, rework java and C# sources to be more closer to each other, slightly update the engine (check xml documentation for byte-trunc instruction), and greatly improved an internal function to try to automatically found the encoding algorithm of a specific hiscore file. So, yes, the project is still alive!

Games: R2D Tank, Radar Scope, Guardian, Prehistoric Isle in 1930, Prehistoric Isle 2,  Wild Western, The Three Stooges In Brides Is Brides, Black Widow, Gravitar,  Space Duel, Eggs, Eliminator, Exed Exes, Loco-Motion, Pac & Pal, Start Trek, Tac/Scan, Warlords, Zektor, Snap Jack, Son Son, Demolition Derby, Espial, Kozmik Kroozr, Omega Race, Rampage, Satan's Hollow, Solar Fox, Spy Hunter, Time Pilot '84, Two Tigers, Wacko, Fire Truck, The Ninja Warriors, Gradius III, Lode Runner, Rainbow Island, Viewpoint, Youjyudn.

all games from mame 0.1 to 0.28 are supported

clones aligned to mame 0.212 hiscore.dat

Everything is here: http://greatstone.free.fr/hi2txt/index.html (http://greatstone.free.fr/hi2txt/index.html)

I still have to understand potential slowdown with Hyperspin?

Impressive!!!!
Keep it on!