| Разработка и ромхакинг > Ромхакинг |
| Модифицируем игры для Sega Saturn |
| << < (15/17) > >> |
| 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 получше, но не уверен, точно помню игры, где разгон тоже ломал игровой процесс, все ускорялось. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |