DC-SWAT Forum
Создание CDI образа с LBA 45000 из GDI образа игры Sega Dreamcast. - Версия для печати

+- DC-SWAT Forum (http://www.dc-swat.ru/forum)
+-- Форум: Sega Dreamcast (/forum-2.html)
+--- Форум: Инструкции, описания, FAQ-ки (/forum-13.html)
+--- Тема: Создание CDI образа с LBA 45000 из GDI образа игры Sega Dreamcast. (/thread-3700.html)



Создание CDI образа с LBA 45000 из GDI образа игры Sega Dreamcast. - botik - 28.03.2020 14:38

Файлы оригинальных дисков Sega Dreamcast изначально заточены под адрес 45000 менять привязку LBA мы не будем.

ИНСТРУКЦИЯ

1.Открываем GDI образ через программу GDROM Explorer

2.Извлекаем ресурсы в отдельную папку <data> а также IP.BIN который нужно поместить рядом с папкой <data>. Применяем хаки не изменяя LBA в файлах.В некоторых играх достаточно хакнуть только IP.BIN.

3.Создадим образ ISO с LBA 45000

mkisofs -V GAME_TITLE -C 0,45000 -G IP.BIN -l -o image.iso ./data

4.Создадим CDI с LBA 11702 из полученного image.iso (утилита cdi4dc.exe может только с 11702!!!)

cdi4dc.exe image.iso image.cdi

5.Самый важный фикс для изменения LBA 11702 на 45000.

Открываем image.cdi в Hex редакторе и спускаемся в конец файла.Ищем глазами там группу байтов 'B6 2D 00 00' в двух местах -это адреса 11702 и изменяем их вручную на 'C8 AF 00 00' это адрес 45000.
[Изображение: E2_a41VgeX4.jpg]

Размер CDI образа получился такой же как при LBA 11702 но остался привязан к 45000.Можно также создать MDF/MDS образ через mds4dc.exe а image.mds открыть в HEX редакторе и изменить адрес с 11702 на 45000.


RE: Создание CDI образа с LBA 45000 из GDI образа игры Sega Dreamcast. - botik - 02.04.2020 20:59

Написал на Python3 аналог программы cdi4dc.Конвертация происходит быстро за 3-5 сек и с любым значением LBA

Инструкция.
1. Установить и настроить пакет Python3 на ПК.
2. Создать образ iso через mkisofs.exe с параметрами 0,45000. Но....
Если открыть утилиту iso2cdi в блокноте то в строке 8 можно поставить своё значение LBA(по умолчанию стоит 45000). Помните значение в утилите и в параметрах mkisofs.exe должно совпадать!!!
3. Затем образ iso зажать мышкой и перетащить на утилиту iso2cdi

https://vk.com/doc340699273_543991613


RE: Создание CDI образа с LBA 45000 из GDI образа игры Sega Dreamcast. - megavolt85 - 03.04.2020 01:22

(02.04.2020 20:59)botik писал(а):  Но....
Если открыть утилиту iso2cdi в блокноте то в строке 8 можно поставить своё значение LBA

а можно посчитать LBA из ISO


RE: Создание CDI образа с LBA 45000 из GDI образа игры Sega Dreamcast. - botik - 03.04.2020 01:55

Cам размер iso в lba вычисляется так- (размер iso в байтах делить на 2048). Но здесь мы задаем адрес начала второй сессии а не размер.


RE: Создание CDI образа с LBA 45000 из GDI образа игры Sega Dreamcast. - megavolt85 - 03.04.2020 02:03

а я не про размер iso говорю, а именно про адрес начала второй сессии, он довольно легко считается
если интересно могу рассказать


RE: Создание CDI образа с LBA 45000 из GDI образа игры Sega Dreamcast. - botik - 29.08.2025 16:57

Нашел способ как уменьшить размер GDI формата - конкретно файл track03.bin у которого размер 1185760800 байт независимо от игры . Можно уменьшать его до размера CDI .Менять IP.BIN не требуется.На эмуляторе все работает.Запуститься ли такой репак на консоли не знаю.Имеет ли смысл выкладывать инструкцию?

Чтобы открыть такой образ через GDI Explorer нужно нарастить размер track03.bin нулями до 1185760800 байт.


RE: Создание CDI образа с LBA 45000 из GDI образа игры Sega Dreamcast. - SWAT - 30.08.2025 08:45

(29.08.2025 16:57)botik писал(а):  Нашел способ как уменьшить размер GDI формата - конкретно файл track03.bin у которого размер 1185760800 байт независимо от игры . Можно уменьшать его до размера CDI .Менять IP.BIN не требуется.На эмуляторе все работает.Запуститься ли такой репак на консоли не знаю.Имеет ли смысл выкладывать инструкцию?

Чтобы открыть такой образ через GDI Explorer нужно нарастить размер track03.bin нулями до 1185760800 байт.

Это уже много лет как делается в репакнутых образах тут на форуме Smile)
На сколько уменьшить получится зависит от того, сколько игра занимает. Если она занимает 200 МБ, то и образ получится такой-же. Просто в случае оптического диска, там всегда данные отодвинуты к краю для максимальной скорости чтения, поэтому у игр часто есть трек-пустышка.


RE: Создание CDI образа с LBA 45000 из GDI образа игры Sega Dreamcast. - botik - 30.08.2025 09:42

Понял уже все придумали до меня. Но мне интересна другая вещь.К примеру игра Draconus COTW имеет 5 треков.Уменьшить количество треков можно легко до 3 без распаковки.Склеить 3 и 5 и между ними нужную пустышку. Получится стандартный track03.bin. Еще файл .GDI поправить и в IP.BIN по адресу 0x28E (05 поменять на 03). Теперь о главном есть игры где в середине track03.bin очень пусто.Идея разбить его на track03.bin track04.raw track05.bin к ак с диском Draconus с целью вырезать пустоту не получается. GDI Explorer ругается на TOC из IP.BIN а как его менять загадка.(там FFFFFFFFFFFFFFFF)


RE: Создание CDI образа с LBA 45000 из GDI образа игры Sega Dreamcast. - e2e4 - 30.08.2025 21:04

[Изображение: 1.png] [Изображение: 2.png] [Изображение: 3.png]
Из скриншотов я думаю вам станет понятнее, моя идея просто перебить значения на нужные, но есть подозрения что не совсем понял последнюю мысль автора которую тот хотел донести.


RE: Создание CDI образа с LBA 45000 из GDI образа игры Sega Dreamcast. - botik - 30.08.2025 22:16

На скрине видно для диска Dragonus TOC = 6E070101 C7090141. Предположу что это размер двух треков track04.raw и track05.bin но что-то не сходится. Для стандартных 3 трековых дисков TOC = FFFFFFFFFFFFFFFF.

Главная идея разбить 3 трека на 5 треков как это сделали в Dragonus. Проблема как вычислить для этого правильный TOC.
А зачем вообще это нужно? Некоторые игры весят 200 mb а занимают 1,2 gb (track03) . Разбить track03 на track03 -50 mb , track04.raw - 2mb и track05 -150 mb и выкинуть 1 gb пустых секторов.

Для Dragonus это конечно не нужно там экономии несколько мегабайт.


RE: Создание CDI образа с LBA 45000 из GDI образа игры Sega Dreamcast. - e2e4 - 31.08.2025 01:12

(30.08.2025 22:16)botik писал(а):  Для стандартных 3 трековых дисков TOC = FFFFFFFFFFFFFFFF.
стандарт для трехтрековых
54 4F 43 31 5E B0 00 41
ЛБА 45150=B05E
это не размер а адрес начала сессии, зная размер мы можем посчитать нужный ЛБА, все привязано к файловой структуре диска по дефолту для GDI сектор 2352,
касательно Draconus в третьей сессии скорее всего что то типа разметки, какие файлы и папки расположены на диске.


RE: Создание CDI образа с LBA 45000 из GDI образа игры Sega Dreamcast. - botik - 31.08.2025 02:22

Теперь я понял как это работает и уже сделал пробный образ их 4 треков.В gdi explorer открывается без ошибок но на эмуляторе redream не запускается (хотя оригинал работает). Может обрезал лишнего.


Upd

Нужно делать два gdi файла.Один для открытия через gdi explorer а другой для запуска на эмуляторе.Интересно какой вариант запуститься на консоли? Кто желает проверить
Игра для теста Treasure Strike

https://transfiles.ru/qq9yq


RE: Создание CDI образа с LBA 45000 из GDI образа игры Sega Dreamcast. - megavolt85 - 31.08.2025 03:41

(30.08.2025 21:04)e2e4 писал(а):  Из скриншотов я думаю вам станет понятнее, моя идея просто перебить значения на нужные

затея помноженная на ноль, LBA в IP.BIN используются только в WINCE и только для CDDA треков

(30.08.2025 22:16)botik писал(а):  Главная идея разбить 3 трека на 5 треков как это сделали в Dragonus. Проблема как вычислить для этого правильный TOC.
А зачем вообще это нужно? Некоторые игры весят 200 mb а занимают 1,2 gb (track03) . Разбить track03 на track03 -50 mb , track04.raw - 2mb и track05 -150 mb и выкинуть 1 gb пустых секторов.

к чему весь этот геморой, есть же GDI srink? он на автомате вырезает все пустышки без пересборки образа.
ну а бонусом есть игры, которые не будут работать после пересборки, вот для них уже нужно полное понимание как устроен образ и при помощи утилиты DD и HEX редактора, урезаются даже такие капризные образы