Extract a copy of 0x1D2 from 0x1D1 at 0x22000 - 0x38fff.
Code:
Offset(h) 00 04 08 0C
00022000 C2BD120B 80000000 00000000 80000000
00022010 00000000 00000000 01000000 81000000
00022020 00000000 00000000 00000000 00000000
00022030 00000000 00000000 00000000 00000000
00022040 01000000 81000000 00000000 00000000
00022050 00000000 00000000 00000000 00000000
00022060 00000000 00000000 00000000 00000000
00022070 01000000 81000000 00000000 80000000
00022080 10000000 00000000 FFFF0000 00000000
00022090 00000000 00000000 00000000 00000000
000220A0 00000000 00000000 00000000 00000000
000220B0 00000000 00000000 00000000 00000000
000220C0 00000000 00000000 00000000 00000000
000220D0 00000000 00000000 00000000 00000000
000220E0 00000000 00000000 00000000 00000000
000220F0 00000000 00000000 00000000 00000000
00022100 00000000 00000000 FFFF0000 FFFF0000
00022110 00000000 00000000 00000000 FFFF0000
00022120 01000000 00000000 00000000 00000000
00022130 00000000 00000000 00000000 63F08B44
........
00023C70 00000101 00000000 00000001 00000000 ................
00023C80 00000000 00000000 1C930000 00000000 .........“......
^^^^
little-endian checksum of previous 16-bit words
The carved file is very similar to your 1D2.
There are differences at the beginning:
Code:
Offset(h) 00 04 08 0C
00000000 C2BD120B FF000000 00000000 81000000
00000010 00000000 00000000 01000000 81000000
00000020 00000000 00000000 00000000 00000000
00000030 00000000 00000000 00000000 00000000
00000040 01000000 81000000 00000000 00000000
00000050 00000000 00000000 00000000 00000000
00000060 00000000 00000000 00000000 00000000
00000070 01000000 81000000 00000000 81000000
00000080 10000000 00000000 FFFF0000 00000000
00000090 00000000 00000000 00000000 00000000
000000A0 00000000 00000000 00000000 00000000
000000B0 00000000 00000000 00000000 00000000
000000C0 00000000 00000000 00000000 00000000
000000D0 00000000 00000000 00000000 00000000
000000E0 00000000 00000000 00000000 00000000
000000F0 00000000 00000000 00000000 00000000
00000100 00000000 00000000 FFFFFFFF FFFFFFFF
00000110 FFFFFFFF FFFFFFFF 00000000 FFFF0000
00000120 01000000 00000000 00000000 00000000
00000130 00000000 00000000 00000000 63F08B44
This is the remaining difference (apart from the checksum):
Code:
Offset(h) 00 04 08 0C
00001BD0 00000000 00000000 00000000 00010000
00001BE0 61000000 00000000 00000000 00000000
00001BF0 00000000 00000000 00000B00 30000500
Code:
Offset(h) 00 04 08 0C
00001BD0 00000000 00000000 00000000 00010000
00001BE0 E1000000 00000000 00000000 00000000
00001BF0 00000000 00000000 00000B00 30000500
To "permanently unlock" 1D1, change offset 0x04 from 0x80 to 0x81 and add 1 to the checksum word at 0x1C88.
I don't understand why there are so many differences between 1D2 and the version that was carved from 1D1, but this method has worked twice in the past.