Main > Software Forum

HiToText (Version 2010.11.4).

<< < (7/117) > >>

Fyrecrypts:
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.

NOP:
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.

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

Fyrecrypts:
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!

headkaze:
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.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version