Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: HiToText (Version 2010.11.4).  (Read 152678 times)

0 Members and 1 Guest are viewing this topic.

Fyrecrypts

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 237
  • Last login:August 19, 2015, 10:50:47 am
  • .hi guy
Re: HiToText (Version 2009.3.25.0)
« Reply #200 on: April 14, 2009, 07:02:04 pm »
Huge update tomorrow due exclusively to work from Cananas. Sneak peak...

...Robotron.
Help us crack more .hi files here:
http://forum.arcadecontrols.com/index.php?topic=83614.0
Generate the newest hiscore.dat here:
http://www.hitotext.com/HiScoreDat/index.php
Sourceforge project page:
https://sourceforge.net/projects/hitotext

Fyrecrypts

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 237
  • Last login:August 19, 2015, 10:50:47 am
  • .hi guy
Re: HiToText (Version 2009.3.25.0)
« Reply #201 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.
« Last Edit: June 12, 2009, 01:07:48 pm by Fyrecrypts »
Help us crack more .hi files here:
http://forum.arcadecontrols.com/index.php?topic=83614.0
Generate the newest hiscore.dat here:
http://www.hitotext.com/HiScoreDat/index.php
Sourceforge project page:
https://sourceforge.net/projects/hitotext

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0)
« Reply #202 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

Fyrecrypts

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 237
  • Last login:August 19, 2015, 10:50:47 am
  • .hi guy
Re: HiToText (Version 2009.4.15.0)
« Reply #203 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. =)
Help us crack more .hi files here:
http://forum.arcadecontrols.com/index.php?topic=83614.0
Generate the newest hiscore.dat here:
http://www.hitotext.com/HiScoreDat/index.php
Sourceforge project page:
https://sourceforge.net/projects/hitotext

brianoneill

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 72
  • Last login:January 27, 2017, 04:44:59 pm
  • I want my own arcade controls!
Re: HiToText (Version 2009.4.15.0)
« Reply #204 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 ?

Fyrecrypts

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 237
  • Last login:August 19, 2015, 10:50:47 am
  • .hi guy
Re: HiToText (Version 2009.4.15.0)
« Reply #205 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. =)
Help us crack more .hi files here:
http://forum.arcadecontrols.com/index.php?topic=83614.0
Generate the newest hiscore.dat here:
http://www.hitotext.com/HiScoreDat/index.php
Sourceforge project page:
https://sourceforge.net/projects/hitotext

brianoneill

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 72
  • Last login:January 27, 2017, 04:44:59 pm
  • I want my own arcade controls!
Re: HiToText (Version 2009.4.15.0)
« Reply #206 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

Fyrecrypts

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 237
  • Last login:August 19, 2015, 10:50:47 am
  • .hi guy
Re: HiToText (Version 2009.4.15.0)
« Reply #207 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!
Help us crack more .hi files here:
http://forum.arcadecontrols.com/index.php?topic=83614.0
Generate the newest hiscore.dat here:
http://www.hitotext.com/HiScoreDat/index.php
Sourceforge project page:
https://sourceforge.net/projects/hitotext

Fyrecrypts

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 237
  • Last login:August 19, 2015, 10:50:47 am
  • .hi guy
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #208 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!
Help us crack more .hi files here:
http://forum.arcadecontrols.com/index.php?topic=83614.0
Generate the newest hiscore.dat here:
http://www.hitotext.com/HiScoreDat/index.php
Sourceforge project page:
https://sourceforge.net/projects/hitotext

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #209 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
« Last Edit: May 13, 2009, 06:15:11 pm by Wob »

Fyrecrypts

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 237
  • Last login:August 19, 2015, 10:50:47 am
  • .hi guy
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #210 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. =)
Help us crack more .hi files here:
http://forum.arcadecontrols.com/index.php?topic=83614.0
Generate the newest hiscore.dat here:
http://www.hitotext.com/HiScoreDat/index.php
Sourceforge project page:
https://sourceforge.net/projects/hitotext

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #211 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)
« Last Edit: May 15, 2009, 01:46:37 am by Wob »

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #212 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
« Last Edit: May 15, 2009, 01:45:05 am by Wob »

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #213 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)
« Last Edit: May 15, 2009, 01:46:15 am by Wob »

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #214 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 :)
« Last Edit: May 17, 2009, 07:31:12 pm by Wob »

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #215 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
« Last Edit: May 17, 2009, 10:16:40 pm by Wob »

Fyrecrypts

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 237
  • Last login:August 19, 2015, 10:50:47 am
  • .hi guy
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #216 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.
Help us crack more .hi files here:
http://forum.arcadecontrols.com/index.php?topic=83614.0
Generate the newest hiscore.dat here:
http://www.hitotext.com/HiScoreDat/index.php
Sourceforge project page:
https://sourceforge.net/projects/hitotext

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #217 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.

Fyrecrypts

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 237
  • Last login:August 19, 2015, 10:50:47 am
  • .hi guy
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #218 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. =)
Help us crack more .hi files here:
http://forum.arcadecontrols.com/index.php?topic=83614.0
Generate the newest hiscore.dat here:
http://www.hitotext.com/HiScoreDat/index.php
Sourceforge project page:
https://sourceforge.net/projects/hitotext

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #219 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.


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 :)


Cheers,
Wob

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #220 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
« Last Edit: May 19, 2009, 02:47:25 am by Wob »

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #221 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

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #222 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

Cananas

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 299
  • Last login:August 27, 2017, 07:39:03 am
  • and the seventh day... PacMan was created
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #223 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.

Visitor Q

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 1187
  • Last login:May 01, 2019, 09:09:30 am
  • The Saw Is Family
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #224 on: May 19, 2009, 05:48:09 pm »
Nevermind...  ;D
« Last Edit: May 19, 2009, 07:40:33 pm by Visitor Q »
“Woe be unto him who opens one of the seven gateways to hell, because through that gateway evil will invade the world."

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #225 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

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #226 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
« Last Edit: May 20, 2009, 02:24:45 am by Wob »

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #227 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)


Screenshot of the name entry screen showing strange special characters


Cheers,
Wob

Fyrecrypts

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 237
  • Last login:August 19, 2015, 10:50:47 am
  • .hi guy
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #228 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. =)
Help us crack more .hi files here:
http://forum.arcadecontrols.com/index.php?topic=83614.0
Generate the newest hiscore.dat here:
http://www.hitotext.com/HiScoreDat/index.php
Sourceforge project page:
https://sourceforge.net/projects/hitotext

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #229 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 :)

Fyrecrypts

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 237
  • Last login:August 19, 2015, 10:50:47 am
  • .hi guy
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #230 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.
Help us crack more .hi files here:
http://forum.arcadecontrols.com/index.php?topic=83614.0
Generate the newest hiscore.dat here:
http://www.hitotext.com/HiScoreDat/index.php
Sourceforge project page:
https://sourceforge.net/projects/hitotext

Fyrecrypts

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 237
  • Last login:August 19, 2015, 10:50:47 am
  • .hi guy
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #231 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
Help us crack more .hi files here:
http://forum.arcadecontrols.com/index.php?topic=83614.0
Generate the newest hiscore.dat here:
http://www.hitotext.com/HiScoreDat/index.php
Sourceforge project page:
https://sourceforge.net/projects/hitotext

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #232 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

Fyrecrypts

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 237
  • Last login:August 19, 2015, 10:50:47 am
  • .hi guy
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #233 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.
Help us crack more .hi files here:
http://forum.arcadecontrols.com/index.php?topic=83614.0
Generate the newest hiscore.dat here:
http://www.hitotext.com/HiScoreDat/index.php
Sourceforge project page:
https://sourceforge.net/projects/hitotext

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #234 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

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #235 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.


Cheers,
Wob

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #236 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

headkaze

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 2943
  • Last login:August 14, 2023, 02:00:48 am
  • 0x2b|~0x2b?
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #237 on: May 28, 2009, 11:06:45 pm »
Nice work Wob, appreciate your contributions and good to see this project still going strong  :cheers:

Wob

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 47
  • Last login:February 19, 2017, 05:13:04 pm
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #238 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


Cheers,
Wob

Fyrecrypts

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 237
  • Last login:August 19, 2015, 10:50:47 am
  • .hi guy
Re: HiToText (Version 2009.4.15.0) and ???? Coming soon...
« Reply #239 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).
Help us crack more .hi files here:
http://forum.arcadecontrols.com/index.php?topic=83614.0
Generate the newest hiscore.dat here:
http://www.hitotext.com/HiScoreDat/index.php
Sourceforge project page:
https://sourceforge.net/projects/hitotext