| Игры > Игры на консолях 1-4 поколений |
| Phantasy Star IV - The End Of Millennium |
| << < (14/15) > >> |
| ANDreal_4eX:
Sharpnull, спасибо огромное за работу! Проверил на картридже все ромы , все работает стабильно ! :) |
| Sharpnull:
--- Цитата: ANDreal_4eX от 05 Август 2022, 09:38:55 ---Проверил на картридже все ромы , все работает стабильно --- Конец цитаты --- Спасибо за проверку, но нашёл ошибки, которые не вызывают зависание, но приводят к неправильному отображению сообщения (после использования предметов/навыков). Исправление v3. Плохую инструкцию нельзя было убирать, она записывала 2 символа текста, из них 2-й символ использовался для определения наличия замены на женский вариант *facepalm*. Таких текстов 4 шт: 2F9EB0, 2F9EC0, 2F9ED0, 2F9EE0 - Уснула!, Парализована!, Проснулась!, Отравлена!. Исправление fix_v2_alt справлялось бы с 3 шт., но текст "Уснул!" с нечётного адреса и проверка была не на символ "с" (2F), а другой байт (F2) - результат плохой инструкции. При этом проверка "с" (2F) всё равно конфликтовала бы с "Усиления сняты!" (Психо посох, например). Заменил плохую инструцию ROM 2F9F50: move.w (A0),($F002) на move.b 1(A0),($ffffF003).w (со сдвигом последующего кода вниз), а чтобы убрать конфликт "Уснул!" сравниваю адрес начала текста - заменил ROM 2F9F7C: cmpi.b #$F2,($ffffF003).w на cmpa.l #$2F5383,A0. По-хорошему стоит в других проверках использовать адреса текста, а лучше индекс текста, но нужно быть уверенным, что он верный. В файле остаётся дублирование "Уснул!" и "Уснула!" (2F9E80), надеюсь это мусор от перевода. Я проверял, изменяя индекс сообщения, потому что для реальной проверки нужно знать условия срабатывания (враги, предметы). |
| ANDreal_4eX:
Sharpnull, играю в ром _fix_v3_&_eng_title.gen и заметил еще пару косяков. 1) во время битвы с Зио, надпись "МагическийБарьер" - без пробела. 2) во время использования предмета "Рим-пакет" на андроида Деми кривая рамка. фото прикрепляю. 3) игра Зависает когда персонаж Радж достигает нового 28 уровня находясь в транспортном средстве. Я пробовал достигать уровня без транспортного средства, все нормально. В Ледяном Буре или в Броневике - зависает. |
| Sharpnull:
UPD: Был какой-то глюк форума, не прикрепился архив. --- Цитата: ANDreal_4eX от 06 Август 2022, 00:15:13 ---1) во время битвы с Зио, надпись "МагическийБарьер" - без пробела. --- Конец цитаты --- Скорее всего это специально, у текста 16 символов, а, когда я делал вручную исправление, там 16 было макс. длиной, иначе налезало на окно. Это мелочь, я замечал другие строки, где не было пробела после специального байта подстановки имени персонажа. Перевод нужно делать с нуля, судя по коду всё не очень хорошо. --- Цитата: ANDreal_4eX от 06 Август 2022, 00:15:13 ---2) во время использования предмета "Рим-пакет" на андроида Деми кривая рамка. фото прикрепляю. --- Конец цитаты --- Я точно не понял почему, но для сообщения "РЕМ-ПАКЕТ" нужно 10 символов, другие длины искажают окно. Возможно как-то проскакивает длина от японской версии - там фиксированное окно в 10 символов, но в переводе такой проблемы нет с предметом "ПИРОГ", например. Исправление v4. Добавил проверку адреса текста для "РЕМ-ПАКЕТ" после подсчёта символов чтобы менять на длину 10, будет отображаться с пробелом после слова, зато без сломанного окна. Можно было переместить все строки для расширения "РЕМ-ПАКЕТ", но не стал трогать на всякий случай. "РЕМ-ПАКЕТ" встречается в роме ещё 2 раза зачем-то, надеюсь мусор, иначе проверка не сработает. "РЕМ-ПАКЕТ", которое я исправлял, находится с 2FECEA до байта FE (разделитель). Для теста, перед входом в подвал добавлял Деми в группу (RAM FFF40D = 06), а Элис давал предмет РЕМ-ПАКЕТ (RAM FFF5CE = 90). Значения предметов: https://gamehacking.org/game/15665 Item Digits > Info/Note. Использование предметов 0x90, 0x91 и может других почему-то добавляет ещё одного Чаза в список, такое есть и в оригинале, значит я добавляю предмет нет так. Код меняющий длину вместо rts, 2F8020: --- Код: --- cmpa.l #$2FECF4,A0 ; Адрес после подсчёта указывает на конец + 2 байта bne.b skip moveq #$0C,D1 ; Число на 2 больше длины текста skip: rts --- Конец кода --- --- Цитата: ANDreal_4eX от 06 Август 2022, 00:15:13 ---3) игра Зависает когда персонаж Радж достигает нового 28 уровня находясь в транспортном средстве --- Конец цитаты --- Это я не смогу исправить, слишком долго. |
| paul_met:
--- Цитата: ANDreal_4eX от 06 Август 2022, 00:15:13 ---2) во время использования предмета "Рим-пакет" на андроида Деми кривая рамка. фото прикрепляю. --- Конец цитаты --- Могу сделать вывод по анализу прямого порта сей игры на Сатурн - окно не полностью расширено (не все значения ширины окна исправлены). Мне встречалась подобная ситуация, где для расширения окна требовалось откорректировать аж 3 одинаковых значения вместо одного. |
| Sharpnull:
--- Цитата: ANDreal_4eX от 06 Август 2022, 00:15:13 ---3) игра Зависает когда персонаж Радж достигает нового 28 уровня находясь в транспортном средстве. --- Конец цитаты --- Я пробовал в BizHawk получать уровни в транспорте в начале игры, но зависания не было, ставил такие значения (в BizHawk нужно выбирать отображение по 1 байту в HEX-редакторе, Memory Domain 68K RAM): F410: 96 97 98 - Весь транспорт, F40D: 08 - Добавить Raja, 470E-470F: HP транспорта, замораживал значение (кнопка Пробел), F90A-F90D: EXP Raja, ставил ближе к следующему уровню. Добавил в игру обработчик исключений (Crash Handler) для поиска ошибок. Это не всегда помогает, но при зависании может (разработчики для всех исключений добавили бесконечный цикл, поэтому зависает, а в некоторых играх были встроены обработчики, я позаимствовал у RoboCop Versus The Terminator). В случае ошибки сделайте фото, если нельзя сделать скриншот, и приложите. Будет экран такого вида: Расшифровка значений в архиве. Мне пришлось урезать код обработчика чтобы влезть в свободное место на 0x330 байт, поэтому без описания на экране. UPD: Это ром нет смысла запускать на эмуляторах как Gens, где нет обработки исключений. Должно работать в Genesis Plus GX (BizHawk) и BlastEm. UPD2: Из-за косяка разработчиков игры, обработчик исключений (этот ром) приводит к зависанию после любой битвы. |
| ANDreal_4eX:
попробовал ром с обработчиком, но при зависании (с Раджем) окна с ошибкой не появилось. Хочу еще дополнить, что на момент повышения уровня Раджа, у него открывается новая техника Сар+1, и как раз перед этим сообщением и происходит зависание в транспорте. p.s. попробую прикрепить файл сейва |
| Sharpnull:
--- Цитата: ANDreal_4eX от 14 Август 2022, 21:34:16 ---попробовал ром с обработчиком --- Конец цитаты --- Я сейчас выяснил, что из-за косяка разработчиков, _fix_v4_&_crashhandler.gen зависает после битвы :facepalm: В оригинальном роме (J) по ошибке происходит проверка байта в позиции 0x16, где находится адрес обработчика исключения в случае деления на ноль (адрес в позициях 0x14-0x17). После битвы проверка на 6-й бит и разработчикам повезло, что в 0x02 он не установлен (адрес обработчика 00 00 02 00), иначе зависание не связанное с исключением. В самой битве проверка того же байт на биты #$6E (AND) и разработчикам повезло, что в 0x02 один из бит установлен, иначе зависание. Такого вроде не должно произойти, если в группе все 5 персонажей. Чтобы обработчик исключений не мешал, нужно вернуть байты 00 00 02 00 с позиции 0x14, но тогда не будет перехвата деления на ноль. Прикрепил. --- Цитата: ANDreal_4eX от 14 Август 2022, 21:34:16 ---открывается новая техника Сар+1, и как раз перед этим сообщением и происходит зависание в транспорте --- Конец цитаты --- В эмуляторе я замечаю небольшую задержку перед отображением сообщения о новой технике, но у других персонажей тоже, может из-за этого. Не знаю получится ли это исправить. UPD --- Цитата: ANDreal_4eX от 14 Август 2022, 21:34:16 ---попробую прикрепить файл сейва --- Конец цитаты --- Зависание есть в BizHawk, уже что-то. Здесь прикреплённый ром не покажет окно обработчика, это на случай других ошибок. |
| Sharpnull:
Исправление v5. Был бесконечный цикл при повышении уровня с получением техники в транспорте. Код искал индексы тайлов с полоской наверху и заменял на вариант без полоски, касается только тайлов с 2 точками и тонкой полоской. Остановкой был тайл с вертикальной полоской, который у рамки сообщения в обычном бою, но не в транспорте. Для исправления добавил ограничение на конечный адрес, но, если рамка сообщения бывает больше или меньше, могут быть проблемы с отображением тайлов, хотя я не уверен, что этот код вообще нужен.В архиве исходный код исправления. Код обработчика исключений не добавлял, его нужно приводить в порядок, но, если кому-то нужен код или будут ещё проблемы, я сделаю. |
| ANDreal_4eX:
Sharpnull, я нашел еще один косяк. Во время сражения, если воскресить персонажа используя предмет "лунные духи" или "солнечные духи" искажается рамка сообщения. Спасибо еще раз за огромному работу и вклад в развитие ретро-гейминга! |
| Sharpnull:
Исправление v6. Правильная рамка у сообщений после применения предметов "ЛУННЫЕ ДУХИ", "СОЛНЕЧНЫЕ ДУХИ", "РЕМ-ПАКЕТ" и возможно других. В переводе были пропущены минимум 2 вставки подсчёта длины текста, одна исправляет ДУХИ, другая РЕМ-ПАКЕТ, для которого теперь правильная рамка без пробела вместо фиксированной длины как в прошлом исправлении. Я изменил вызовы подсчёта длины текста по аналогии с переводом, но не разбирался что конкретно там происходит, вроде работает правильно. |
| ANDreal_4eX:
Sharpnull, прошел игру полностью, игра великолепная, технических нареканий не выявил. Спасибо тебе еще раз огромное! и кстати, в титрах bybyc9lc9l сделал упоминание о самом себе, думаю со мной согласились бы все форумчане, если бы и ты оставил упоминание о себе за огромный вклад! |
| JARL32:
--- Цитата: ANDreal_4eX от 20 Август 2022, 20:24:58 ---думаю со мной согласились бы все форумчане --- Конец цитаты --- За всех отвечать не стоит, игра вполне себе игралась на эмуляторах без глюков. Вот сделает Sharpnull перевод, тогда и поставит свой никнейм хоть на титул, хоть в середину, хоть в титры, а так пока может только приписать Fix by Sharpnull к исправленному рому. |
| Sharpnull:
--- Цитата: JARL32 от 21 Август 2022, 12:32:38 ---игра вполне себе игралась на эмуляторах без глюков --- Конец цитаты --- Зависание в транспорте и кривая рамка сообщений были на всех эмуляторах, а зависание от использования некоторых навыков/предметов не было в кривом Gens, в остальных нормальных эмуляторах было. |
| JARL32:
Проходил на псп в Picodrive 1.51, впечатления были только положительные, зависаний не припомню, хотя может оно конечно и было, если хорошо поискать. |
| damdam:
Привет всем! Меня всегда интересовал вопрос : можно ли в игре (нажав на Start (меню сохранения)) сделать не 4 строки,а 6 строк (или 7).Чтобы можно было выбрать вход в дебуг меню.А то после кода FFEC9F:06 (или FFEC9E:06) курсор выходит за пределы меню.Хотелось бы,чтобы курсор был в пределах меню. Может там вместо числа 4 можно ввести 7 и будет меню из 7 строк?! Реально ли такое? |
| Sharpnull:
--- Цитата: damdam от 29 Август 2022, 16:54:33 ---Может там вместо числа 4 можно ввести 7 и будет меню из 7 строк?! --- Конец цитаты --- Элементарно. 7 пунктов меню для выбора Debug Menu: для (J) и русской версии - HEX 59375:06 / Game Genie A4KT-LADY, для (U) - HEX 5925D:06 / Game Genie A4KA-LAC6. После использования отладочного меню останется тайл от курсора на экране, пока не будет перерисовка. Если в меню на Start всегда 4 пункта меню, то можно сделать Debug 5-м пунктом и тогда будет стираться. UPD: Для увеличения высоты окна, чтобы скрыть тайл курсора после использования Debug меню: (J) и русского - HEX 69503:0E, (U) - HEX 69401:0E. |
| damdam:
Oooo! Ну наконец-то! Спасибо! Я в русскую версию играл довольно давно...и всë же на некоторые моменты,на которые следует обратить внимание: 1.Я уже не помню,но...исправлена ли ошибка 99 уровня развития у персов? 2.Помнится мне,что после уничтожения Зио,мы появляемся на Дезолисе...и тут же нужно смотреть на диалоговое окно.В определëнный момент во время диалогов исчезает музыка (на 2-3 секунды) - Почему так? |
| ANDreal_4eX:
--- Цитата: damdam от 29 Август 2022, 20:27:27 ---2.Помнится мне,что после уничтожения Зио,мы появляемся на Дезолисе...и тут же нужно смотреть на диалоговое окно.В определëнный момент во время диалогов исчезает музыка (на 2-3 секунды) - Почему так? --- Конец цитаты --- я думал это тонкий юмор у них такой, типо что Радж алкаш и он забывает свою мысль. Это вроде сразу после того как его берешь в команду |
| Shredder:
А чего плюсики так далеко отстоят от цифр? Логично было сделать прямо перед ними, без пробелов. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |