тут как я уже говорил нужно переименовать исполняемый файл в trackXX.iso и добить нулями его до размера кратного 2048 байтам, в случае с WINCE размер исполняемого файла уже кратен 2048, а для катана игр считаем на калькуляторе
для примера возьму Dreamon Collection 2, исполняемый файл 0DREAMON.BIN, размер 1046784 байт
1046784/2048=511,125 округляем всегда в большую сторону до целого, получаем 512 секторов
512*2048-1046784=1792 это количество байт которое нужно добавить к концу исполняемого файла
для калькулятора SpeedCrunch можно воспользоваться формулой
Код:
ceil(file_size/2048)*2048-file_size
добивать нулями будем программой dd
Код:
dd if=/dev/zero of=boot_file bs=1 seek=boot_file_size count=pad_size
где boot_file - имя нашего исполняемого файла, boot_file_size - размер исполняемого файла, pad_size - число полученное по предыдущей формуле. dd if=/dev/zero of=0DREAMON.BIN bs=1 seek=1046784 count=1792
теперь можно переименовывать загрузочный файл в trackXX.iso и запускать fix_track01_IP
исправление LBA загрузочного файла:
так как в последнем треке у нас один единственный файл, то LBA последнего трека и есть LBA загрузочного файла, а программа fix_track01_IP заботливо нам его уже посчитала, открываем disc.gdi и смотрим LBA последнего трека, в подавляющем большинстве случаев это будет 450000, в hex это 0x0006DDD0
открываем track03.iso в hex редакторе, переходим по адресу 0x80A4, берём два байта и считаем офсет где находится корневая директория, в данном случае (как и в подавляющем большинстве) это значение 0xAFDC, (0xAFDC-45000)*2048=0xA000
переходим в HEX редакторе по полученному смещению 0xA000, тут не стану грузить описанием структуры iso, просто выделяй кусками области пока имя исполняемого файла не окажется в выделении, красным на фото отмечено по сколько байт блоки отмечать
как только имя исполняемого файла оказалось в выделении, правим LBA (выделено оранжевым), на фото уже исправленный вариант 0x0006DDD0, обрати внимание что первое значение записано с обратным порядком байт D0 DD 06 00, а второе с прямым 00 06 DD D0