Автор Тема: Модифицируем игры для Sega Saturn  (Прочитано 41810 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8047
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« : 04 Сентябрь 2015, 19:08:21 »
Информация о модификации игр для Sega Saturn
--------------------------------------------------------------------------------------------
« Последнее редактирование: 21 Январь 2017, 16:48:09 от paul_met »

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8047
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #240 : 08 Январь 2023, 12:15:26 »
В SSF можно разгонять до 4-х раз.

Оффлайн yousver2

  • Пользователь
  • Сообщений: 2605
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #241 : 08 Январь 2023, 12:21:16 »
paul_met, именно этот гад у меня вообще не заработал, щас напишу, какую ошибку он мне выдает, ssf

Короче, запускаю, он мне пишет иероглифами нечто вроде ??????CD????? и сразу же закрывается

Версию качал с первой страницы гугла, Тестовая 2017

Скачал версию R4 - Тоже самое, без разницы.
И у меня пока коды в виде памяти, поэтому в SSF протестить пока не получится, нужно чуть больше продебажить и записать значения в сам образ
ща все таки попробую в Ретроарке

UPD2
Да, игра с удовольствием схрумкала расширенную память на ядре Кроноса, и играется без всяких тормозов с увеличенным обзором.
Как говорил Картман, "Шиииииикарно"
                                                          оригинал                                                                                                                                     расширенная
256092-0 256094-1

Также выключил в игре весь худ нафиг. Вот теперь можно поиграть) Теоретически можно уменьшить худ и распихать его по углам куда нибудь, чтобы не загораживал обзор, но пока лень это делать

256096-2
« Последнее редактирование: 08 Январь 2023, 12:40:41 от yousver2 »

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8047
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #242 : 08 Январь 2023, 13:36:53 »
Версию качал с первой страницы гугла, Тестовая 2017

Скачал версию R4 - Тоже самое, без разницы.
Это же древние версии, требующие виртуальный привод. Качать надо превью версии отсюда (https://github.com/shimazzz/SEGASaturnEmulator-SSF/releases/tag/PreviewVer).
И я то-то не понял про какую "расширенную память" идёт речь?

Оффлайн yousver2

  • Пользователь
  • Сообщений: 2605
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #243 : 08 Январь 2023, 13:47:09 »
paul_met, ок, попробую новую версию
Не, меня по ходу приглючило, расширения для памяти типа exented и back up вообще ни на что не влияют, по ходу только для поддерживающих их игр.
Эх, жаль, ну у меня только последняя надежда осталась на SSF

upd
блин, не одно так другое. Теперь требует для запуска Xinput, версия R28

upd2
Положил ему в папку xinput, теперь пишет "Ошибка при запуске приложения 0xc000007b. SSF продолжает надо мной издеваться
Мож ему какого нибудь visual C или каких нибудь библиотек не хватает?
Блин, ну они хоть бы в требованиях их что ли написали

Скачал версию R25. Теперь не требует Xinput, но при запуске выдает ошибку ID3DD11 и сразу же крашится. Я уже смеюсь и плачу. Ни один эмулятор мне столько проблем не доставлял раньше))
Ок, проверю все версии, какие только существуют
« Последнее редактирование: 08 Январь 2023, 14:06:33 от yousver2 »

Оффлайн blackoff

  • Пользователь
  • Сообщений: 8240
  • Пол: Мужской
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #244 : 08 Январь 2023, 14:06:43 »
Теперь требует для запуска Xinput
каких нибудь библиотек не хватает?
directX...

Оффлайн yousver2

  • Пользователь
  • Сообщений: 2605
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #245 : 08 Январь 2023, 14:08:18 »
blackoff, ну у меня абсолютно все другие эмуляторы работают, включая самые современные)) Ему какой то древний Директ Х что ли нужен? блин, ну щас еще раз 11 поставлю

Не, он отказывается ставить директХ 11, пишет ,что установлена уже самая современная версия
Я уже начинаю рейджить. Какой криворукий **** *** **** сделал SSF
Осталось только посленюю версию R18 проверить и я опускаю руки. Видимо, пока оверклок не завезут в остальные эмули, расширить дальность видимости в играх на сатурне не судьба

Так, есть, единственная версия, которая ничего не требует - R18, после нее они че то переписали видимо. Щас посмотрю, есть ли в R18 разгон или они его позже добавили

Вроде бы разгон есть, но нет ввода кодов)) В общем, мне осталось рам коды задебажить, прописать их в образе, и затестить на SSF на наличие тормозов
По непонятной причине, R18 тормозит вообще всю Винду, даже мышка начинает рывками работать
« Последнее редактирование: 08 Январь 2023, 14:16:50 от yousver2 »

Оффлайн blackoff

  • Пользователь
  • Сообщений: 8240
  • Пол: Мужской
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #246 : 08 Январь 2023, 14:17:03 »
Ему какой то древний Директ Х что ли нужен? блин, ну щас еще раз 11 поставлю
обычный можно web,сам подтянет  ,последний был что ли 10 года ,остальное хз ,xinput есть в нем, тот что кинул к эмулю удали ...

Оффлайн yousver2

  • Пользователь
  • Сообщений: 2605
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #247 : 08 Январь 2023, 14:18:50 »
blackoff, я именно оттуда и пытался ставить, он не ставит - пишет, что системе не нужен direct x , уже стоит нормальный

Оффлайн Damin72

  • Пользователь
  • Сообщений: 50
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #248 : 11 Январь 2023, 11:09:57 »
Вопрос. А как пересобирают образы для Saturn? Я, конечно, пользуюсь CDMage, но понимаю, что как только файл будет больше по размеру, то этот способ не подойдёт.

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8047
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #249 : 12 Январь 2023, 00:28:54 »
Вопрос. А как пересобирают образы для Saturn? Я, конечно, пользуюсь CDMage, но понимаю, что как только файл будет больше по размеру, то этот способ не подойдёт.
Да любой прогой, которая умеет создавать образы из файлов (Mode1 /2048). Единственное, что понадобиться в заголовок образа вставить оригинальный IP игры. Его можно вытащить ручками из образа через хекс редактор (размер 32 кб макс). Либо юзать связку прог SIR + SIPM (вроде, где-то в этой теме прикреплял).

Оффлайн Damin72

  • Пользователь
  • Сообщений: 50
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #250 : 12 Январь 2023, 16:40:31 »
Да любой прогой, которая умеет создавать образы из файлов (Mode1 /2048). Единственное, что понадобиться в заголовок образа вставить оригинальный IP игры. Его можно вытащить ручками из образа через хекс редактор (размер 32 кб макс). Либо юзать связку прог SIR + SIPM (вроде, где-то в этой теме прикреплял).
Вот пробовал, но что-то не работает. Для "тупых" инструкцию-минимум какую-нибудь можно написать?

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8047
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Re: Модифицируем игры для Sega Saturn
« Ответ #251 : 12 Январь 2023, 17:17:46 »
Вот пробовал, но что-то не работает. Для "тупых" инструкцию-минимум какую-нибудь можно написать?
Она уже по сути написана выше. Поэтому, проще сделать наоборот - распиши что и как делал, чтобы понять почему не работает.

Оффлайн Damin72

  • Пользователь
  • Сообщений: 50
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #252 : 12 Январь 2023, 19:16:02 »
SIR + SIPM
Ну-с... начнём с того, что SIP сохраняет IP у Shining Force 3 USA как весь образ.

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8047
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #253 : 12 Январь 2023, 19:24:16 »
Ну-с... начнём с того, что SIP сохраняет IP у Shining Force 3 USA как весь образ.
Образ должен быть в режиме "Mode1 /2048", как писало выше. Если это условие не соблюдается, то SIMP уведомляет о неизвестном типе образа (см. строку состояния внизу окна).

Оффлайн Damin72

  • Пользователь
  • Сообщений: 50
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #254 : 12 Январь 2023, 19:28:03 »
Образ должен быть в режиме "Mode1 /2048", как писало выше. Если это условие не соблюдается, то SIMP уведомляет о неизвестном типе образа (см. строку состояния внизу окна).
Хорошо, тогда где взять образ с Mode1 /2048, а не Mode1 /2352?
Других что-то не видел.

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8047
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #255 : 12 Январь 2023, 19:43:48 »
Я, конечно, пользуюсь CDMage...
Тогда проблем не будет. конвертируешь образ и всего делов.

Оффлайн Damin72

  • Пользователь
  • Сообщений: 50
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #256 : 13 Январь 2023, 00:31:54 »
Тогда проблем не будет. конвертируешь образ и всего делов.
Вроде запахало. Спасибо.

Оффлайн yousver2

  • Пользователь
  • Сообщений: 2605
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #257 : 03 Февраль 2023, 14:41:59 »
paul_met, слушай, а как ты widescreen в 3д играх вычислял и находил? Смена разрешений по таблице ничего не дала, картинка тупо рушится на куски почти на всех разрешениях. Я думаю, что нахождение границ экрана не имеет никакого отношения к выставленному разрешению, так получается?
Я посмотрел твой патч Нексуса, там ты всего 2 байта поменял для вайдскрина: с 644D на 74C0. Мне интересно, как ты эти значения вычислил, если не трудно :)

Оффлайн nonamezerox

  • Пользователь
  • Сообщений: 322
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #258 : 03 Февраль 2023, 15:54:18 »
Мне интересно, как ты эти значения вычислил, если не трудно

Нужно найти и заменить коэффициент 3Д матрицы проекции M(0,0) (певый столбец первая строка), по формуле 1 / (соотношение_сторон* тангенс_FOV/2).

Соответственно, тебе нужно найти

1) Какой ФОВ в игре у камеры

2) В каком формате игра хранит фиксированную точку (тк речь про сатурн и плавающего петуха в него в 90х ещё не завезли).

3) По какому адресу игра хранит матрицу проекции.

Собственно, для незнакомой игры тебе придется искать или ассемблерный код для DSP или ассемблер для одного из центральных процов SH4, так как разные разработчики обработку геометрии  делали на разных процах по характерному для умножения матрицы 4х4 на матрицу 4х4 и матрицы 4х4 на вектор шаблону.

И, замечу, это все чисто только про 3д. Если графика 2д или гибридная аля резидент ивил, то задача усложняется так как задник рисуется не по трехмерному а тупо картинка забитого гвоздями разрешения копируется в буфер кадра.
« Последнее редактирование: 03 Февраль 2023, 16:09:34 от nonamezerox »

Оффлайн yousver2

  • Пользователь
  • Сообщений: 2605
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #259 : 03 Февраль 2023, 16:10:18 »
nonamezerox, просто для пс1 подобные патчи гораздо проще было найти, ищя известные разрешения картинки, гораздо быстрее было их найти вслепую, чем дебажить код.
че то типа вот таких
1000
1999
199A
12AA
111A
1400

Я думал, мож для Сатурна тоже есть способ наподобие, как можно быстро вычислить нужное значение

Добавлено позже:
nonamezerox, ну вот с 2д как раз чуть проще, там можно увеличить разрешение и убрать клиппинг спрайтов за экраном, и надеяться, что в буфер копируется достаточно бэкграунда дополнительного ))) а в 3д пока что не очень получается

Оффлайн nonamezerox

  • Пользователь
  • Сообщений: 322
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #260 : 03 Февраль 2023, 16:12:11 »
nonamezerox, просто для пс1 подобные патчи гораздо проще было найти, ищя известные разрешения картинки, гораздо быстрее было их найти вслепую, чем дебажить код.
че то типа вот таких
1000
1999
199A
12AA
111A
1400

Я думал, мож для Сатурна тоже есть способ наподобие, как можно быстро вычислить нужное значение

Конечно проще, для пс1 был нормальный SDK и при разработке игры использовалось много стандартного кода из SDK. В том числе и вызывающаяся в коде функция-конструктор матрицы проекции с параметрами(fov,aspect,znear,zfar).

Добавлено позже:
Я думал, мож для Сатурна тоже есть способ наподобие, как можно быстро вычислить нужное значение

Добавлено позже:
nonamezerox, ну вот с 2д как раз чуть проще, там можно увеличить разрешение и убрать клиппинг спрайтов за экраном, и надеяться, что в буфер копируется достаточно бэкграунда дополнительного ))) а в 3д пока что не очень получается

И вообще, на сатурне было все крайне не просто (небольшой спойлер для ромхакеров - в сатурне DSP на VLIW архитектуре, прямо как почивший Intel itanium и посконный процессор Эльбрус и дизассемблировать код  можно только сломав мозг в 5 измерении):

« Последнее редактирование: 03 Февраль 2023, 16:27:30 от nonamezerox »

Оффлайн yousver2

  • Пользователь
  • Сообщений: 2605
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #261 : 03 Февраль 2023, 16:23:36 »
nonamezerox, щас попробую все таки поковырять уже известные вайдскрины, типа Панзер Драгона, и может найти какой нибудь более универсальный и менее затратный по времени способ, который будет подходить для всех игр)

Добавлено позже:
nonamezerox, там в Yabause Очень много полезной инфы высвечивается, например, с какой координаты начинают отрисовыываться полигоны. Я думаю, что нужно скакать отсюда. Имея на руках некие координаты, их проще будет найти поиском в хексе, правда пока что не знаю, где конкретно искать, так как слишком много совпадений, сотни. На их проверку уйдет много часов времени
« Последнее редактирование: 03 Февраль 2023, 16:34:14 от yousver2 »

Оффлайн nonamezerox

  • Пользователь
  • Сообщений: 322
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #262 : 03 Февраль 2023, 16:43:02 »
nonamezerox, щас попробую все таки поковырять уже известные вайдскрины, типа Панзер Драгона, и может найти какой нибудь более универсальный и менее затратный по времени способ, который будет подходить для всех игр)

Добавлено позже:
nonamezerox, там в Yabause Очень много полезной инфы высвечивается, например, с какой координаты начинают отрисовыываться полигоны. Я думаю, что нужно скакать отсюда. Имея на руках некие координаты, их проще будет найти поиском в хексе, правда пока что не знаю, где конкретно искать, так как слишком много совпадений, сотни. На их проверку уйдет много часов времени

Умножение матрицы на вектор ищи, говорю же.

Откуда читаются вершины в VDP1 туда должно перед этим наумножаться и наскладываться массивом.

Там куча умножений и куча сложений должны друг за дружкой в асме идти. С операндами из массива на 16 или на 12 элементов. Это искомая итоговая матрица

Потом лепи вотч на матрицу и ищи где world*view*projection происходит и находи projection. После чего подставляй коэфициент.

« Последнее редактирование: 03 Февраль 2023, 17:01:39 от nonamezerox »

Оффлайн yousver2

  • Пользователь
  • Сообщений: 2605
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #263 : 03 Февраль 2023, 17:03:24 »
nonamezerox, че то начал находить, по крайней мере мир вокруг меня сжимается и расширяется, пока только 1 плоскость, в моем случае вода. Там видимо координаты для каждой плоскости в отдельности, а на сатурне по моему может быть 4 плоскости, если не ошибаюсь

Оффлайн nonamezerox

  • Пользователь
  • Сообщений: 322
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #264 : 03 Февраль 2023, 17:13:17 »
nonamezerox, че то начал находить, по крайней мере мир вокруг меня сжимается и расширяется, пока только 1 плоскость, в моем случае вода. Там видимо координаты для каждой плоскости в отдельности, а на сатурне по моему может быть 4 плоскости, если не ошибаюсь

В трехмерной графике используются матрицы.

За масштабирование в целом отвечает диагональ матрицы (00 - по X, 11-по Y 22- по Z), умножение матрицы на вектор дает умножение диагонали на соответствующую координату. За перемещение  - добавочное измерение (в случае 3д - четвертое)  с балластной единицей на добавочном измерении у вершины, при перемножении преобразуется в сложение исходной координаты вершины и четвертого столбца матрицы. Вращение - тут синусы и косинусы углов в разных ячейках в зависимости от осей вращения.

 

Оффлайн yousver2

  • Пользователь
  • Сообщений: 2605
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #265 : 03 Февраль 2023, 21:20:24 »
В общем, с этой игрой у меня не получилось, возможно не все игры поддаются расширению экрана, и я просто неудачно выбрал первую. Но зато я получил бесценные знания по изменению разрешения в Сатурне и нахождению координат начала отрисовки полигонов. Возможно, со следующей игрой мне повезет больше

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8047
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #266 : 04 Февраль 2023, 02:18:55 »
nonamezerox, просто для пс1 подобные патчи гораздо проще было найти, ищя известные разрешения картинки, гораздо быстрее было их найти вслепую, чем дебажить код.
че то типа вот таких
1000
1999
199A
12AA
111A
1400
Я думал, мож для Сатурна тоже есть способ наподобие, как можно быстро вычислить нужное значение
Это не разрешения картинки, а наиболее популярные коэффициенты масштабирования геометрии. На плойке тоже фиксированные разрешения экрана как и у Сатурна, только  горизонтальных больше (256, 320, 384, 512, 640).  Так как платформы одного поколения, то и архитектуры у них схожие. На Сатурне геометрия масштабируется по сути также и поиск этих коэффициентов аналогичен таковому как и на плойке (через cheat engine ищешь в диапазоне RAM консоли значения типа "1000", "00010000" и т.д.). Если не повезёт, то придётся возиться с координатами спрайтов, а там непаханое поле в виде тонны переумножающихся координат.

Собственно, для незнакомой игры тебе придется искать или ассемблерный код для DSP или ассемблер для одного из центральных процов SH4, так как разные разработчики обработку геометрии  делали на разных процах по характерному для умножения матрицы 4х4 на матрицу 4х4 и матрицы 4х4 на вектор шаблону.
У Сатурна процы SH2. Это у Дримки SH4.

Оффлайн nonamezerox

  • Пользователь
  • Сообщений: 322
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #267 : 04 Февраль 2023, 13:04:26 »

У Сатурна процы SH2. Это у Дримки SH4.

да.

Оффлайн yousver2

  • Пользователь
  • Сообщений: 2605
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #268 : 04 Февраль 2023, 16:19:49 »
paul_met, Steamgear mash

Увеличил разрешение с 320 224 до 352 224. Адрес в памяти ee5a8. Также подвинул клиппинг врагов чуть правее, чтобы они не обрезались при скролле. Адреса можешь легко поиском найти 013F00EF, там их будет 2 рядом, верхний - это клиппинг врагов. Я его сделал на 015F. Они перестали обрезаться, но при пересечении добавленной области оставляют за собой шлейф. Не пойму, что это и как его устранить.
Высокое разрешение вообще не работает, тупо черную область показывает :) Пытался разные высокие поставить, не распознает их, либо нужно добавлять вывод дополнительной графики в видео память хз

258087-0 258089-1

Оффлайн paul_met

  • Супермодератор
  • Сообщений: 8047
  • Пол: Мужской
  • Похититель эмуляции
    • Youtube
    • Просмотр профиля
Модифицируем игры для Sega Saturn
« Ответ #269 : 04 Февраль 2023, 17:06:11 »
Они перестали обрезаться, но при пересечении добавленной области оставляют за собой шлейф. Не пойму, что это и как его устранить.
Не расширена область рисования/стирания объектов (05D0000A). В одних играх она автоматически устанавливается при смене разрешения экрана, но в других надо ставить ручками.