Main > Software Forum
HiToText (Version 2010.11.4).
Fyrecrypts:
--- Quote from: 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
--- End quote ---
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.
Wob:
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
--- End quote ---
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)
--- End quote ---
Cheers,
Wob
Wob:
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
--- End quote ---
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
--- End quote ---
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)
--- End quote ---
Screenshot
Cheers,
Wob
dna disturber:
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
Fyrecrypts:
--- Quote from: 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
--- End quote ---
Ahh, thank you, I will try and fix that as well.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version