Игры > Игры на консолях 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:
А чего плюсики так далеко отстоят от цифр? Логично было сделать прямо перед ними, без пробелов.


Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии