Разработка и ромхакинг > Ромхакинг и программирование
Какая прога может менять регион у SEGA MD ромов
<< < (2/2)
Mefistotel:
Подниму тему.
Вот есть, к примеру, ром Langrisser II (J) (REV02) [T+Eng_M.I.J.E.T.].gen. В нём в зависимости от выбора региона в эмуляторе меняется язык и в игре. Включил JAPAN - иероглифы, захотел USA - английский. Region switch в общем.

Как-то можно в роме сделать запуск только одного региона, не взирая на выбранные настройки эмуляторов?
Кто может подсказать/помочь в этом вопросе?
DrMefistO:
Mefistotel, что-то я меняю регион в эмуле, а в игре ничего не меняется, кроме логотипа сеги (ТМ).
Arbars:

--- Цитата: Mefistotel от 03 Ноябрь 2015, 16:41:12 ---Подниму тему.
Вот есть, к примеру, ром Langrisser II (J) (REV02) [T+Eng_M.I.J.E.T.].gen. В нём в зависимости от выбора региона в эмуляторе меняется язык и в игре. Включил JAPAN - иероглифы, захотел USA - английский. Region switch в общем.

Как-то можно в роме сделать запуск только одного региона, не взирая на выбранные настройки эмуляторов?
Кто может подсказать/помочь в этом вопросе?

--- Конец цитаты ---
Кстати, такая же петрушка в первом Streets of Rage.
blackbird_ru:
Mefistotel, помню хачил СоР на это. Там фишка в том, что игра проверяет регистр региона и меняет всё в зависимости от значения. Поэтому дебаг, брейкпоинт и измена переходов.
Встречаться кстати, проверка может не один раз за игру.

Вот инфа, что мне помогла в этом вопросе, взята со спрайтсмайнд.


--- Цитата ---No such thing. The only thing the MD allows is:
 Domestic NTSC (domestic as in Japan)
 Domestic PAL
 Foreign NTSC
 Foreign PAL

 That's it. Check bit 7 of the version register (byte at $A10001) to see if it's domestic (0) or foreign (1), and bit 6 to see if it's NTSC (0) or PAL (1).

 SEGA required people to encode which "region" was allowed in the "country code" byte... instead of U or E or J or anything else, which had no chance of ever being validated, SEGA changed it to a hex digit from "0" to "F" where the bits of the hex digit stood for one of the qualifications I listed at the top.

 b3 = Foreign PAL
 b2 = Foreign NTSC
 b1 = Domestic PAL
 b0 = Domestic NTSC

 So a "world" rom became "F", any PAL region became "A", and any NTSC region became "5". Of course, it's up to the game itself to check that the code matches the version register values - none of that is enforced via hardware.

 If you want a better more secure way to verify a region, you have to build custom hardware into your cart.

44 FC 00 04 4E 71 4E 71 - Move to CCR
08 39 00 07 00 A1 00 01 - btst #7,[$00A10001)
--- Конец цитаты ---
blackbird_ru:
А вот патчик на СоР, чтобы всегда японка была.
Mefistotel:

--- Цитата: DrMefistO от 03 Ноябрь 2015, 17:00:34 ---Mefistotel, что-то я меняю регион в эмуле, а в игре ничего не меняется, кроме логотипа сеги (ТМ).

--- Конец цитаты ---
Не знаю, что ты там меняешь. На скриншоте виден текст первого же игрового диалога при разных регионах в эмуляторе GENS.


--- Цитата: blackbird_ru от 03 Ноябрь 2015, 17:18:05 ---Mefistotel, помню хачил СоР на это. Там фишка в том, что игра проверяет регистр региона и меняет всё в зависимости от значения. Поэтому дебаг, брейкпоинт и измена переходов.
Встречаться кстати, проверка может не один раз за игру.

Вот инфа, что мне помогла в этом вопросе, взята со спрайтсмайнд.


--- Конец цитаты ---
Спасибо, посмотрим.
Rumata:

--- Цитата: Mefistotel ---Region switch в общем.
--- Конец цитаты ---
Language switch скорее.

--- Цитата: Mefistotel ---Как-то можно в роме сделать запуск только одного региона, не взирая на выбранные настройки эмуляторов?
--- Конец цитаты ---
а) Нет. Точнее можно, если влезть в код и заблокировать проверку и переключение
б) Зачем? По ходу это фишка переводчиков уже встречалось подобное

DrMefistO:

--- Цитата: Mefistotel ---Не знаю, что ты там меняешь. На скриншоте виден текст первого же игрового диалога при разных регионах в эмуляторе GENS.
--- Конец цитаты ---

Как до этих диалогов добраться-то?)
Mefistotel:
Наверное, нужно начать игру, раставить войска и выбрать команду "к бою".
DrMefistO:
Mefistotel, сделай мне сейв перед нажатием кнопки к бою, плиз.
GManiac:
Тряхну стариной :)
Там несколько проверок на регион по адресу порта напрямую. Скрытые проверки вряд ли есть. Проверяется 7-й бит: 0 - домашняя версия (японка), 1 - экспортная.
В первом куске кода надо заменить команду SEQ на:
ST (код 50F8) для японки и SF (код 51F8) для английского.
В остальных кусках надо заменить команду BNE на:
NOP (код 4E71) для японки, BRA (первый байт - команда 60xx) для англ.


--- Код: ---_000A815C: 0839 0007 00A10001       BTST      #$7,I/O:$00A10001
_000A8164: 57F8 FF42                SEQ       RAM:$FF42
...
_000A8168: 6618                     BNE       ROM:$000A8182(pc)
...
_000A81C4: 0839 0007 00A10001       BTST      #$7,I/O:$00A10001
_000A81CC: 6606                     BNE       ROM:$000A81D4(pc)
...
_000A8288: 0839 0007 00A10001       BTST      #$7,I/O:$00A10001
_000A8290: 660C                     BNE       ROM:$000A829E(pc)
...
_000A85C8: 0839 0007 00A10001       BTST      #$7,I/O:$00A10001
_000A85D0: 6608                     BNE       ROM:$000A85DA(pc)
--- Конец кода ---
Mefistotel:
Всем спасибо.  :thumbup:
Навигация
Главная страница сообщений
Предыдущая страница

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