forked from PeterLemon/Nintendo_DS_Compressors
-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
history.txt
63 lines (55 loc) · 2.15 KB
/
history.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
--------------------------------------------------------------------------------
Nintendo DS Compressors by CUE
--------------------------------------------------------------------------------
2011-11-11: version 1.0
-----------------------
- initial version:
+ RLE coding
+ LZSS coding
+ Huffman coding
+ LZ eXtended coding
+ LZ Enhanced coding
+ Bottom LZ coding
2012-02-25: version 1.1
-----------------------
- added 'history.txt' file
- BLZ: added support to encode ARM9 files
+ added command '-en9' to encode files in normal mode
+ added command '-eo9' to encode files in optimal mode
2012-07-05: version 1.2
-----------------------
- BLZ decode
+ updated messages
+ do not remove the latest 4 zeroes in uncompressed files
- BLZ encode ARM9 files
+ check the size: greater as 16KB
+ check the ID (0x0000): FF-DE-FF-E7-FF-DE-FF-E7-FF-DE-FF-E7-FF-DE
+ check the Secure Area 2KB CRC16 (0x000E): CRC from 0x0010 to 0x07FF
+ check the Secure Area 2KB end (0x07FE) : 00-00
2012-08-12: version 1.3
-----------------------
- solved a bug from the update 1.2 in Huffman encode
2012-08-12: version 1.4
-----------------------
- solved a bug Huffman compression (1-2-4 bits)
2024-06-10: version 1.5
-----------------------
- big cleanup of the tools (warnings have been fixed, code style improved)
- the tools now expect an input and an output path for each file
*** WARNING ***
---------------
You need the NDS ROM to update the ARM9 size in the ARM9 file:
- get the ARM9 load address (offset 0x0028)
- get the ARM9 autoload (offset 0x0070)
- the offset is the previous dword value @ autoload
- change the sizes in the 1st/2nd/6rd dwords pointed by the offset:
+ 1st: ARM9 decompressed size + 0x18
+ 2nd: ARM9 decompressed size
+ 6rd: ARM9 compressed size (0 if ARM9 is uncompressed)
(do not forget update all values with the load address)
load = *(int *)ROM[0x0028];
auto = *(int *)ROM[0x0070] - load;
offset = *(int *)ARM9[auto - 1*4] - load;
*(int *)ARM9[offset+0*4] = load + ARM9_size - 0x18
*(int *)ARM9[offset+1*4] = load + ARM9_size
*(int *)ARM9[offset+5*4] = load + ARM9_decompressed_size (0 if decompressed)