Разработка и ромхакинг > Ромхакинг
Модифицируем игры для Sega Saturn
paul_met:
Информация о модификации игр для Sega Saturn
--------------------------------------------------------------------------------------------
Список всех доступных патчей можно найти - Здесь
yousver2:
nonamezerox, да, нашел нужный адрес, картинка сжимается и расширяется) Только в этой игре мне от этого лучше не стало, оказалось, что ничего не отрисовывается за пределами видимого экрана, который разрабы сделали - куча хлама :)) Это нужно еще видимую область расширять, попробую
nonamezerox:
--- Цитата: yousver2 от 06 Февраль 2023, 12:21:46 ---nonamezerox, да, нашел нужный адрес, картинка сжимается и расширяется) Только в этой игре мне от этого лучше не стало, оказалось, что ничего не отрисовывается за пределами видимого экрана, который разрабы сделали - куча хлама :)) Это нужно еще видимую область расширять, попробую
(Ссылка на вложение)
--- Конец цитаты ---
Так, тогда смотри изменяется ли инфа по этому самому адресу и откуда (тут может собираться Model View Projection матрица из трех отдельных их последовательным перемножением. В таком случае операция над элементом (0.0) затронет так же и масштабирование от матрицы вида. Судя по картинке - да, ты меняешь уже сведенную матрицу MVP.
Твоя задача найти откуда появляются значения этих коэффициентов.
Общая суть такова:
Матрица модели (Model) - своя на каждую модельку . Отвечает за расстановку моделек по сцене.
Матрица вида (View) - отвечает за камеру, она поворачивает и масштабирует всю сцену так что бы сцена попала нужным углом в ракурс камеры. Общая на весь кадр. Меняется согласно логике работы игровой камеры.
Её задача привести ракурс кадра так что бы вершины модели оказались в аппаратных координатах экрана.
Матрица проекции (Projection) - окончательно отвечает за угол обзора, соотношение сторон и еще масштабирует по оси Z (это та что направлена внутрь монитора). Общая на всю игру.
При рендеринге матрица каждой модели умножается на матрицу вида и проекции, после чего через итоговую MVP матрицу умножением прогоняются все вершины модели и отправляются на рендер в GPU.
yousver2:
nonamezerox, ок, щас попробую, спасибо
Добавлено позже:
--- Цитата: nonamezerox от 06 Февраль 2023, 12:58:57 ---Так, тогда смотри изменяется ли инфа по этому самому адресу и откуда
--- Конец цитаты ---
Не, адрес не меняется, записывается перед началом гонки, щас попробую посмотреть откуда
Добавлено позже:
nonamezerox вышел на еще адреса, которые делают абсолютно тоже самое, только теперь по 3 разным адресам. Видимо, это и есть модель, вид и проекция, только они делают тоже самое - вид как был как на скриншоте выше, так и остался) Ок, щас попробую проследить один из них, интересно откуда пишется он
п.с. Эти 3 адреса пишутся при запуске игры, после логотипа Сега примерно
И пишутся они с адреса 0x5818000. Дальше их след теряется ))
nonamezerox:
--- Цитата: yousver2 от 06 Февраль 2023, 13:07:14 ---nonamezerox, ок, щас попробую, спасибо
Добавлено позже:
Не, адрес не меняется, записывается перед началом гонки, щас попробую посмотреть откуда
Добавлено позже:
nonamezerox вышел на еще адреса, которые делают абсолютно тоже самое, только теперь по 3 разным адресам. Видимо, это и есть модель, вид и проекция, только они делают тоже самое - вид как был как на скриншоте выше, так и остался) Ок, щас попробую проследить один из них, интересно откуда пишется он
п.с. Эти 3 адреса пишутся при запуске игры, после логотипа Сега примерно
--- Конец цитаты ---
Вот смотри, примерно что должно происходить:
https://godbolt.org/z/nczqEoe4e
yousver2:
nonamezerox, я просто смотрел , как в других играх это делается, на которых уже есть вайдскрины. Там сжатие картинки происходит от центра в обе стороны. А здесь почему-то картинка сужается справа налево только, при этом перс сужается влево тоже. Ну размеры перса наверное несложно будет найти, но от мусора это никак не избавляет. Все же у меня подозрение на поле видимости отрисовки, мож там клиппинг какой нибудь стоит, хз. Yabause эту игру не понимает, поэтому я лишен львинной доли фишек дебаггера
nonamezerox:
--- Цитата: yousver2 от 06 Февраль 2023, 13:46:59 ---Там сжатие картинки происходит от центра в обе стороны
--- Конец цитаты ---
Да, потому что ноль координат в центре экрана. И координаты с минусом в левой части и с плюсом в правой части экрана, соответсвенно.
Здесь же координаты - с нулем в верхнем левом углу. Причем физические, в пикселях.
И где то в коде из них либо вычитаются -1 и делится на 2 (в зависимости от того какой формат с плавающей точкой применяется) или это делается в самой матрице (в таком случае в матрице итоговой должна быть заполнена колонка на 4 столбец 1 и вторая строка.
А коэффициенты в диагонали масштабируют к тому же с учетом выставленного разрешения, соответсвенно.
Т.Е. в случае сатурна мы имеем такую матрицу проекции:
yousver2:
nonamezerox, не, все, я сдался :lol: Эта игра выше моего среднего уровня интеллекта)) Ну по крайней мере получил знания по нахождению матрицы, спасибо, в следующей игре надеюсь, что картинка будет отрисовываться дальше разрешения экрана, как в других играх
nonamezerox:
Посоны, я просто оставлю это здесь:
Понимаю что оффтопик однако.
yousver2:
ох ты ж б.. Напоминает SlaveDriver двиг, только покруче по эффектам)
HayaoYokogawa:
--- Цитата: nonamezerox от 07 Февраль 2023, 08:27:52 ---Посоны, я просто оставлю это здесь:
Понимаю что оффтопик однако.
--- Конец цитаты ---
Ого. Аж поиграть захотелось. :wow:
yousver2:
paul_met, если хочешь, можешь сделать патчик из этого и добавить на свой сайт. Можешь меня не указывать, мне это вообще неважно) просто добавь в качестве коллекции
Mobile Suit Gundam
RAM
73cb2 0160 - увеличивает дальность отрисовки спрайтов
73398 8001 - увеличить разрешение по горизонтали
Увеличить дальность прорисовки бэкграунда:
открыть хекс редактором первый трэк образа (либо весь образ, если он один)
Найти
014000E0 028000E0
Заменить
016000E0 028000E0
Второй скрин у меня чуть растянут по горизонтали, не обращайте внимания)
Добавлено позже:
paul_met:
--- Цитата: yousver2 от 17 Февраль 2023, 13:35:51 ---73398 8001 - увеличить разрешение по горизонтали
--- Конец цитаты ---
Чую, это не сработает на других эмуляторах (на SSF, например) и на железе тоже.
yousver2:
paul_met, а, ну да, это ж рамка :) Хочешь ,я найду значения в образе)
paul_met:
--- Цитата: yousver2 от 17 Февраль 2023, 14:28:50 ---paul_met, а, ну да, это ж рамка :) Хочешь ,я найду значения в образе)
--- Конец цитаты ---
Дело не в этом. Чтобы корректно выполнить смену разрешения экрана необходимо повысить частоту CPU с помощью специального механизма (процедуры). Каждая игра делает это по-своему. В некоторых играх вообще отсутствует обращение к данной процедуре. Так что, просто записать необходимые биты по адресу 05F80000 будет недостаточно.
yousver2:
paul_met, оу, ну ладно) Ну я тогда в таком их виде здесь оставлю, мож кому захочется на эмуляторе поиграть, на меднафене например норм пашет. У меня просто железа нет, поэтому заморачиваться ради него как то не очень хочется :)
ViToTiV:
--- Цитата: nonamezerox от 07 Февраль 2023, 08:27:52 ---Посоны, я просто оставлю это здесь:
Понимаю что оффтопик однако.
--- Конец цитаты ---
чёт я сомневаюсь, что оно пойдёт на железе с такой скоростью, и пойдёт ли вообще
Dyons:
--- Цитата: ViToTiV от 20 Февраль 2023, 09:26:21 ---чёт я сомневаюсь, что оно пойдёт на железе с такой скоростью, и пойдёт ли вообще
--- Конец цитаты ---
че б ему не пойти, если таже Квака 2 на ПС1 пографонистей будет
yousver2:
Dyons, А еще есть Aliens Resurrection и Delta Force :) Они по-моему максимум выжимают из пс1
paul_met:
Разблокировка FPS работает и для игр Sega Saturn. Теперь дело за эмулятором, который сможет толково разгонять процы.
gotten:
--- Цитата: paul_met от 27 Декабрь 2024, 16:47:54 ---сможет толково разгонять процы
--- Конец цитаты ---
В случае с N64 подобный разгон ломает почти все игры. С Ps1 получше, но не уверен, точно помню игры, где разгон тоже ломал игровой процесс, все ускорялось.
Навигация
Перейти к полной версии