Разработка и ромхакинг > Ромхакинг
Модифицируем игры для Sega Saturn
paul_met:
Информация о модификации игр для Sega Saturn
--------------------------------------------------------------------------------------------
Список всех доступных патчей можно найти - Здесь
Томахомэ:
--- Цитата: paul_met от 02 Январь 2026, 13:23:56 ---Оно не плавающее, а постоянное. Внизу документа же идёт расшифровка.
--- Конец цитаты ---
А что тогда должно значить 20~100h?
paul_met:
--- Цитата: Томахомэ от 02 Январь 2026, 13:35:26 ---А что тогда должно значить 20~100h?
--- Конец цитаты ---
Диапазон.
Томахомэ:
--- Цитата: paul_met от 02 Январь 2026, 14:19:17 ---Диапазон.
--- Конец цитаты ---
Его-то я как раз и имел в виду под "плавающим".
Короче, вон у нас тут куски хекса в начале образа. Если учесть 16-байтные маркера секторов и взять максимальный размер кода регионов - $100 - то AIP должен начинаться с $f20, но там вместо данных, должных напоминать код - середина текста копирайтов, а сами какие-то такие данные идут лишь с $f60. Я что-то упустил при расчёте?
paul_met:
--- Цитата: Томахомэ от 02 Январь 2026, 14:41:04 ---Его-то я как раз и имел в виду под "плавающим".
--- Конец цитаты ---
Ничего там "плавающего" нет. Данные всегда располагаются по зарезервированным для них адресам, не меняя своего местоположения. Прочитай статью "SEGA SATURN TECHNICAL BULLETIN #11" до конца и всё станет понятно.
MetalliC:
--- Цитата: Томахомэ от 02 Январь 2026, 11:43:25 ---Я щас один с такой структуры диска в глубочайшем афиге сижу?
--- Конец цитаты ---
ммм, а что с ней не так ?
--- Цитата: Томахомэ от 02 Январь 2026, 13:35:26 ---А что тогда должно значить 20~100h?
--- Конец цитаты ---
вас в школе таблицы читать не учили? вверху столбца английским по белому написано SIZE, т.е. длина, и она не фиксированная потому что IP может поддерживать один или несколько регионов
Томахомэ:
--- Цитата: MetalliC от 02 Январь 2026, 16:22:59 ---ммм, а что с ней не так ?
вас в школе таблицы читать не учили? вверху столбца английским по белому написано SIZE, т.е. длина, и она не фиксированная потому что IP может поддерживать один или несколько регионов
--- Конец цитаты ---
Поддерживаемый регион у DC, как видим по первому скриншоту, только 1. Значит, AIP должен начинаться с $e40 (System ID+Security Code+монорегиональный Area Code+маркера нового сектора по смещениям 0 и $930)?
Томахомэ:
Судя по границе 2-го и 3-го секторов, система коррекции ошибок чтения на сатурновских CD также присутствует. Размеры данных для неё, я так понимаю, нужно также учитывать?
Добавлено позже:
В общем-то так и оказалось, что надо. Теперь вопрос посерьёзнее - есть ли у Сатурна какие-то свои системные переменные и стандартные вызовы BIOS'а, как у MSX или Neo-Geo? И если да, то как(ой/ая) за каким адресом закрепл(ё/е)н(а):
paul_met:
--- Цитата: Томахомэ от 04 Январь 2026, 12:06:19 ---Теперь вопрос посерьёзнее - есть ли у Сатурна какие-то свои системные переменные и стандартные вызовы BIOS'а, как у MSX или Neo-Geo? И если да, то как(ой/ая) за каким адресом закрепл(ё/е)н(а):
--- Конец цитаты ---
Во-первых, зачем тебе это? А во-вторых, почему бы не почитать официальную документацию?
Томахомэ:
--- Цитата: paul_met от 04 Январь 2026, 14:53:47 ---Во-первых, зачем тебе это? А во-вторых, почему бы не почитать официальную документацию?
--- Конец цитаты ---
Реверс-энжинеринг требует ясности. А когда непонятно даже толком, что где лежит... Хорошо еще, если это область после стека, куда консоль грузит данные с диска - тогда это для хранения внутриигровых данных. А вот переменные $60002dc и $6000260 (см. кусок дизасма бута всё того же Death Crimson ниже) - они для чего, учитывая, что заносится в моём случае бут в область, начинающуюся с $6002000?
Официальную техдокументацию я уже прошуровал, по самым разным PDFкам - нашел только про STACK-(M/S) и 1st READ ADDRESS. О назначении прочих областей RAM - пока ничего.
--- Код: ---AIP:
0e20: d708 MOV.L @($0020,PC),R7 [00000E44]
0e22: d507 MOV.L @($001C,PC),R5 [00000E40]
0e24: 6772 MOV.L @R7,R7
0e26: 6352 MOV.L @R5,R3
0e28: c71b MOVA @($006C,PC),R0 [00000E98]
0e2a: 2032 MOV.L R3,@R0
0e2c: c706 MOVA @($0018,PC),R0 [00000E48]
0e2e: 6173 MOV R7,R1
0e30: e215 MOV #$15,R2
0e32: 6406 MOV.L @R0+,R4
0e34: 4210 DT R2
0e36: 2142 MOV.L R4,@R1
0e38: 8ffb BFS $00000E32
0e3a: 7104 ADD #$04,R1
0e3c: a030 BRA $00000EA0
0e3e: 2572 MOV.L R7,@R5
0e40: 0600 02dc
0e44: 0600 0260
<...>
0e98: 0000 0000
--- Конец кода ---
paul_met:
Значит, плохо смотрел.
Томахомэ:
--- Цитата: paul_met от 04 Январь 2026, 19:01:36 ---Значит, плохо смотрел.
--- Конец цитаты ---
Это-то ясно, а вот с функционалом конкретных адресов внутри Work RAM-H уже непонятица пошла. Что же именно хранится конкретно перед областью стека (в моём случае начинающейся с $6001000, ибо, как видим на первом из моих скриншотов, по смещению $f8 - то есть, если отбросить маркер начала сектора, $e8 - о меня нулики)?
paul_met:
--- Цитата: Томахомэ от 05 Январь 2026, 05:38:19 ---Это-то ясно, а вот с функционалом конкретных адресов внутри Work RAM-H уже непонятица пошла. Что же именно хранится конкретно перед областью стека (в моём случае начинающейся с $6001000, ибо, как видим на первом из моих скриншотов, по смещению $f8 - то есть, если отбросить маркер начала сектора, $e8 - о меня нулики)?
--- Конец цитаты ---
Почитай про обработку исключений и регистр VBR.
Томахомэ:
--- Цитата: paul_met от 05 Январь 2026, 10:02:26 ---Почитай про обработку исключений и регистр VBR.
--- Конец цитаты ---
Искать эту инфу надо в документах конкретно по Сатурну или по всем семейству процессоров SH вообще?
paul_met:
--- Цитата: Томахомэ от 05 Январь 2026, 11:15:52 ---Искать эту инфу надо в документах конкретно по Сатурну или по всем семейству процессоров SH вообще?
--- Конец цитаты ---
Конечно по Сатурну.
Томахомэ:
--- Цитата: paul_met от 05 Январь 2026, 16:21:26 ---Конечно по Сатурну.
--- Конец цитаты ---
Которую из PDF-ок из базы по ссылке выше?
paul_met:
--- Цитата: Томахомэ от 05 Январь 2026, 17:11:30 ---Которую из PDF-ок из базы по ссылке выше?
--- Конец цитаты ---
Что за странные вопросы? Где найдёшь, там найдёшь - в этом заинтересован только ты сам.
Навигация
Перейти к полной версии