может тут кому-то будет интересно - стало любопытно каким макаром родные Mil-CD софтины делают разлочку G1, оказалось совсем не так как хоумбрю/пиратка.
если помните, перед запуском бинарников биос пишет в 5F74E4 типа магическое число - 42FE, которое как я и предполагал не отфонарное, а реальный конечный адрес данных которые будут прогоняться через схему защиты.
собсно в бинарнике милцд встречается такой код:
Код:
8C1DF142 D10C MOV.L #h'A0001000, R1
8C1DF144 D20C MOV.L #h'8C001000, R2
8C1DF146 D30D MOV.L #h'00000C00, R3
8C1DF148 6016 MOV.L @R1+, R0
8C1DF14A 2202 MOV.L R0, @R2
8C1DF14C 4310 DT R3
8C1DF14E 8FFB BF/S h'8C1DF148
8C1DF150 7204 ADD #h'04, R2
8C1DF152 D00B MOV.L #h'000000C0, R0
8C1DF154 6316 MOV.L @R1+, R3
8C1DF156 4010 DT R0
8C1DF158 8BFC BF h'8C1DF154
выглядит бесполезно, т.к. он копирует кусок БИОСа 1000 - 3FFF в раму, то есть область сисколлов, которые и так уже там лежат, и потом еще читает следующие 300h байтов, то есть до адреса 42FF
знакомая цифирка, да ? на единичку больше того якобы "магического" 42FE )
короче это и есть родная "прокачка".
а кусок данных 1000 - 42FE (сисколы с последующими 256 байт "мусора" и еще 511 байт нулей) обладает волшебной контрольной суммой и разлочивает схему защиты.
вот как разлочка для милцд была задумана и реализована самой Сегой