11------------------------------------------------------
22
3- Nombre: HexString
4- Autor: koda
5- Latest Version: 1.0
3+ Nombre: HexString
4+ Autor: koda
5+ Latest Version: 1.1. 0
66URL: https://traduccioneskoda.blogspot.com/
7- Last Update: 23/11/2024
7+ https://github.com/KodingBTW/hexstring
8+ Last Update: 03/12/2024
89
910------------------------------------------------------
10111 - WHAT'S THIS?
@@ -20,8 +21,55 @@ focus on translating.
2021------------------------------------------------------
21222 - WHAT'S NEW
2223------------------------------------------------------
23-
24- V1.0
24+ V1.1.0
25+
26+ Bugs Fixed:
27+ - If you split the text when editing, it was
28+ misinterpreted by the encoder as a new pointer.
29+ (Thanks to Wave).
30+
31+ - The text block counter function is now smarter.
32+ If two pointers point to the same text it will be
33+ counted only once.
34+
35+ New features:
36+ - Added text comments, use ";" at begining of a new
37+ line. (it still can be used at character)
38+
39+ - line with @ or | will be ignore too
40+
41+ - Now more exceptions are handled, and an error
42+ text will be displayed giving more information.
43+
44+ - Characters not found in the .tbl file will now be
45+ printed in the following ~hex~ format. (The "~" symbol
46+ is reserved, and will be ignored if used in the
47+ tbl).
48+
49+ -In the same way when encoding, if ~hex~ is found
50+ it will be encoded with its corresponding hex form.
51+ If any character in the text is not assigned to the
52+ dictionary, it will be copied into its ASCCI format.
53+
54+ - Added support for pointers of other formats and
55+ lengths.
56+ 2bytes little endian
57+ 2bytes big endian
58+ 2bytes splitted (lsb-msb)
59+ 3bytes (gba format)
60+ 4bytes (mega drive - big endian)
61+
62+ - Now when decoding the text, a comment will be
63+ automatically created that contains: the address of
64+ the line, a copy of the text, character length.
65+
66+ - Added previous pointer copy functionality, just
67+ deletes the line and adds the "&" character to the
68+ start of the line, then add his line breaker. The
69+ pointer will be the same as the previous one, very
70+ useful if several pointers point to the same line.
71+
72+ V1.0.0
2573- Decoding ROM Data.
2674- Encoding binary files.
2775- Automatic updates pointers table (Only 2 bytes).
@@ -38,16 +86,31 @@ To decode:
3886Use the Windows console and type -d, then fill in the
3987arguments:
4088
89+ - pointersFormat:
90+
91+ -2b --2bytes "little endian"
92+ -2bb --2bytes "big endian"
93+ -2bs --2bytes "splitted lsb-msb"
94+ -3b --3bytes "(bank/2bytespointer) gba format"
95+ -4b --4bytes "Mega drive games little endian"
96+
4197- romFile: ROM file name.
4298
4399- pointersStartAddress: Address where the pointer table
44100begins.
45101
46102- pointerTableSize: Size of the pointers, in hexadecimal.
47103
48- - headerSize: The size of the header (Formula: take the
49- first pointer in the table, reverse it, and subtract
50- the address where the text begins) in hexadecimal.
104+ - headerSize: The size of the header
105+
106+ Formula: Text Address for the pointer - pointer inverted
107+ (little endian case)
108+
109+ Example: for Goof Troop (U).snes
110+
111+ The pointer format are 2bytes little endian, so the
112+ pointer is "81 E8", the text address is "0x05E881", so
113+ if you use the formula: 5E881 - E881 = 0x50000
51114
52115- lineBreaker: Code used in the ROM to break the text
53116strings, e.g., 0x00 or 0xFF. (If there is more than
@@ -67,6 +130,14 @@ To encode:
67130Use the Windows console and type -e, then fill in the
68131arguments:
69132
133+ - pointersFormat:
134+
135+ -2b --2bytes "little endian"
136+ -2bb --2bytes "big endian"
137+ -2bs --2bytes "splitted lsb-msb"
138+ -3b --3bytes "(bank/2bytespointer) gba format"
139+ -4b --4bytes "Mega drive games little endian"
140+
70141- textFile: File with the text.
71142
72143- textStartAddress: Address where the text block begins.
@@ -76,9 +147,7 @@ arguments:
76147- pointersStartAddress: Address where the pointer table
77148begins.
78149
79- - headerSize: The size of the header (Formula: take the
80- first pointer in the table, reverse it, and subtract the
81- address where the text begins) in hexadecimal.
150+ - headerSize: The same decoder formula.
82151
83152- romFile: ROM file name.
84153
@@ -93,20 +162,20 @@ creating a .bat file for quicker operation.
93162-Before you begin, it's recommended to make a copy of the
94163 ROM and back up any progress you have.
95164
96- -You can dump the text and then reinsert it. Use a
97- hexadecimal comparator to check for discrepancies.
98-
99- -If you notice that the text size exceeds the available
100- space in the text block when reinserting, you can search
101- for empty space in the ROM or simply increase the ROM size.
165+ -Before starting to translate, once the text has been
166+ extracted, reinsert it again. This will help you know
167+ if you are giving the right arguments. You can also use
168+ a hexagecimal comparator and compare it with a made copy.
102169
170+ - If when inserting the text you enter it is greater
171+ than the block. You have three options, reduce the text,
172+ find an empty space, or expand the rom.
103173
104174------------------------------------------------------
1051754 - TO DO:
106176------------------------------------------------------
107177
108- - I assume at some point I’ll add support for 3-byte
109- pointers.
178+ - Possibly add new algorithms for new pointer formats.
110179
111180- A graphical interface—unlikely, as it requires a
112181lot of work, which I don't have time for right now.
0 commit comments