Автор Тема: Какая прога может менять регион у SEGA MD ромов  (Прочитано 10721 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sergi

  • Пользователь
  • Сообщений: 1667
    • ВКонтакте
    • Просмотр профиля
Какая прога может менять регион у SEGA MD ромов
А особенно интересует чтобы менять регион у SEGA 32X ромов
 
И вообще каким образом в роме реализована защита региональная
В каком метсте эти биты стоят и на что их поменять нужно чтобы регион больше не имел значения
 
Спасибо за содействие

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1390
  • Пол: Мужской
    • Просмотр профиля
Какая прога может менять регион у SEGA MD ромов
« Ответ #1 : 20 Сентябрь 2007, 18:27:49 »
Cравни в winhex`e (e) ром и (u).  И станет видно где это.

Оффлайн sergi

  • Пользователь
  • Сообщений: 1667
    • ВКонтакте
    • Просмотр профиля
Какая прога может менять регион у SEGA MD ромов
« Ответ #2 : 20 Сентябрь 2007, 18:58:04 »
А если там еще какие изменения есть - ну там язык и не дай бог графика или уровни?

Я на сколько знаю вот в Sonic 1 и 2 нет региональной защиты - пофигу в американскую или европейскую приставки совать
А вот уже Sonic 3 хрен засунешь нетуда да еще и мегакей не помогает

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1390
  • Пол: Мужской
    • Просмотр профиля
Какая прога может менять регион у SEGA MD ромов
« Ответ #3 : 20 Сентябрь 2007, 19:36:23 »
Маловероятно, чтобы изменилась графика и уровни. К тому же регион наверняка будет недалеко от начала файла, в отличии от ресурсов.
Лично я так находил очень быстро.

Оффлайн sergi

  • Пользователь
  • Сообщений: 1667
    • ВКонтакте
    • Просмотр профиля
Какая прога может менять регион у SEGA MD ромов
« Ответ #4 : 20 Сентябрь 2007, 19:54:15 »
Ну так и сказали бы где находили - адрес и как сделать так чтобы ром перестал быть регоонозависимым
Особенно актуально для 32Х мне - есть 1 игра например Darxie - она только для европы выходила - а мне нужно чтобы ему пофигу было
Кстати демка Экко не пашет на приставке - существует только для эмулятора короче

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1285
    • Просмотр профиля
Какая прога может менять регион у SEGA MD ромов
« Ответ #5 : 20 Сентябрь 2007, 20:38:22 »
Для проверки региона надо прочитать байт $00A10001.

Оффлайн sergi

  • Пользователь
  • Сообщений: 1667
    • ВКонтакте
    • Просмотр профиля
Какая прога может менять регион у SEGA MD ромов
« Ответ #6 : 20 Сентябрь 2007, 20:55:16 »
Ну это байт в адресном пространстве SMD - это я знаю
А в роме это где?

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1285
    • Просмотр профиля
Какая прога может менять регион у SEGA MD ромов
« Ответ #7 : 20 Сентябрь 2007, 22:11:11 »
Как это, в роме где? Байт региона выдаёт сама приставка. В роме есть код, который считывает этот байт и может предпринять разные действия в зависимости от его значения.
Вообще, не мешало бы попонятней писать, что тебе надо... Например, что значит "Какая прога может менять регион у SEGA MD ромов"?
...странный ты какой-то железячник ;)

Оффлайн sergi

  • Пользователь
  • Сообщений: 1667
    • ВКонтакте
    • Просмотр профиля
Какая прога может менять регион у SEGA MD ромов
« Ответ #8 : 20 Сентябрь 2007, 22:21:21 »
Я не вдавался в такие подробности еще - не могу всем заниматься одновременно - я не Sheeva

Мне как раз и нужно чтобы что не выдавала приставка - ром молчал громче
Пример - Sonic 1,2 ему без разницы какая приставка даже у рома подпись (UJE)
А особенно интересуют ромы 32X - в надежде что они имеют такую же защиту

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1285
    • Просмотр профиля
Какая прога может менять регион у SEGA MD ромов
« Ответ #9 : 20 Сентябрь 2007, 22:52:20 »
Я тоже не Sheeva и понять, что значит "ром молчал громче", не могу.
Про организацию защиты я уже сказал: есть код, который проверяет регион приставки. "Защита" очень простая и легко взламывается. Обычно после чтения байта он AND'ится с некоторым значением для выделения битов, а потом сравнивается с нулём. Обычные такие проверки можно даже в хекс-редакторе найти, если знаешь хекс-коды команд. В любом случае есть дизассемблер.
Например, берём Sonic The Hedgehog 3 (U) [!].bin:
0000030C 1039 00A10001            MOVE.B    $00A10001,D0
00000312 EC08                     LSR.B     #6,D0
00000314 0200 0003                AND.B     #$03,D0
00000318 41FA 0126                LEA       $00000440(pc),A0
0000031C 1030 0000                MOVE.B    $00(A0,D0.W),D0
00000320 4A00                     TST.B     D0
00000322 6700 00E4                BEQ       $00000408(pc)
00000326 41F9 000001F0            LEA       $000001F0,A0
0000032C 323C 000F                MOVE.W    #$000F,D1
00000330 B010                     CMP.B     (A0),D0
00000332 6700 0366                BEQ       $0000069A(pc)
00000336 5288                     ADDQ.L    #$1,A0
00000338 51C9 FFF6                DBRA      D1,$00000330
0000033C 49F9 00C00000            LEA       $00C00000,A4
00000342 4BF9 00C00004            LEA       $00C00004,A5

Первые строки - чтение байта региона и извлечение соответствующей ему буквы (название региона) из массива $000440. Там записано J #00 U E. Если извлекается байт #00 (этому будет соответствовать регион Japan (PAL)), игра перескакивает на адрес $000408 (строка 000322) и зависает. В противном случае извлечённая буква ищется в заголовке в адресах $0001F0-$0001FF (строки 000326-00032C). Если она там есть, игра запустится нормально (прыжок на 00069A). Иначе попадём на строку 00033C - там видня инициализация VDP для вывода надписи. В английской версии соника в заголовке прописана одна буква U. Я так понял, авторы написали универсальный код проверки, а в заголовке достаточно просто вписать буквы допустимых регионы.
Есть два пути взлома: добавить в заголовок коды J и E или поменять код: заменить команду BEQ (6700) в строке 000332 на BRA (6000). Чтобы добавить Japan (PAL), можно 6700 00E4 в строке 000322 заменить на 4E71 4E71 или сразу прыгнуть на нужный адрес - 6000 0376 (прыжок на 00069A).
Так понятно?

Оффлайн Rumata

  • Модератор
  • Сообщений: 23961
    • Просмотр профиля
Какая прога может менять регион у SEGA MD ромов
« Ответ #10 : 20 Сентябрь 2007, 23:31:48 »
Попытаюсь объяснить :)
Как я понял, проблема в том, что если записать РОМ во флеш картридж, а потом воткнуть в консоль, то может оказаться, что регион не тот. Вот и возникает желание модифицировать ром.
Впрочем, GManiac, спасибо тебе большое, всё уже расписал. Вопрос в догонку: не может быть такого, что код критичен к региону в плане 50/60 Гц? Там синхронизация видео и всё такое? Собственно, в играх под световое оружие так и есть, а в других?

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1285
    • Просмотр профиля
Какая прога может менять регион у SEGA MD ромов
« Ответ #11 : 21 Сентябрь 2007, 00:28:57 »
Вот как раз насчёт 50/60 и NTSC/PAL я не совсем пойму. Ну, возможно, сказывается, неполное знание устройства телевизора и телевещания ;)
Rumata, может, ты разъяснишь?
Как соотносятся между собой: частота напряжения в сети (у нас 50 Гц), регион приставки (у меня написано Made in Japan, хотя я играл на ней в Blood Shot, а если верить эмуляторам и рому Blood Shot (UE) [!], на японской приставке она вообще не идёт, а тайтл Blood Shot с выбором языка возможен только для Europe (PAL)), разрешение экрана телевизора, размер экрана (например, 320х224, и каким образом изображение всё равно растягивается на ВЕСЬ экран, т.е. как согласуются между собой сигналы видеовыхода и движение луча телевизора), цветовые схемы (в современных теликах можно выбрать схему, этот момент уже не важен) и как согласуются частоты формирования кадров у видеопроцессора и телевизора (в случае 25 Гц телевещания и телика на 50 Гц понятно - чересстрочное изображение, а как быть с NTSC 60 Гц приставкой и тем же теликом? Или NTSC-приставки у нас всё равно работают на частоте 50 Гц?)?
Ещё что такое TV mode (D/K, B/G, etc.)?
И касательно строк есть вопросы: в сформированной строке, насколько я помню (где-то было написано) больше пикселей (т.е. больше, чем 320 или 256), чем видно на экране, а оставшаяся часть несёт какую-то информацию. Отчего так происходит?
Ещё как соотносится строчное прерывание с частотой 15625 Гц с кадровым 50/60 Гц (т.е. 312 и 262 строки) и разрешением 240 или 224 по вертикали. Что происходит с оставшимися строками?
Возможно, я написал глупость :? , особо не серчайте ;)

Бывает, что игра использует по горизонтали оба режима, например, в MK3 большинство экранов - 320х224, а логотип Williams и экран Vs - 256х224.
А Side Pocket (E) вообще использует 320х240 (так Gens показывает). Если верить sega2.doc, такая комбинация запрещена.
Насчёт критичности: HardWareMan описывал артефакт в Red Zone в зависимости от частоты, а ничего другого я пока не припомню.

Оффлайн sergi

  • Пользователь
  • Сообщений: 1667
    • ВКонтакте
    • Просмотр профиля
Какая прога может менять регион у SEGA MD ромов
« Ответ #12 : 21 Сентябрь 2007, 01:02:42 »
Что вы про артефакты пишите
Как китаезы умудряются пиратку делать и она то как раз ей пофигу в какую приставку ее втыкают - крутит как миленькая
И Red Zone и Соников и все остально - даже без притензий и всеравно какая частота - отсуда вывод - дело не в приставке а в роме
Т.е. в коде программы - поэтому нужно сломать

Я спрашиваю может ктото уже сломал - есть такая прога
Пример: на SNES есть SNESTool которая ломает все защиты и по частоте и по локауту и по скорости чтения рома

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1285
    • Просмотр профиля
Какая прога может менять регион у SEGA MD ромов
« Ответ #13 : 21 Сентябрь 2007, 01:12:59 »
Ты или не въезжаешь или вообще не читаешь, что тут пишут.

Оффлайн Rumata

  • Модератор
  • Сообщений: 23961
    • Просмотр профиля
Какая прога может менять регион у SEGA MD ромов
« Ответ #14 : 21 Сентябрь 2007, 01:19:11 »
Ууу, ну и вопрос... Нет, всё понятно, но так сразу ответить... Попробую.
Частота сети, как таковая, не при чем. Но она соответстует частоте кадров, дабы не было мерцания (точнее, наооборот: кадровые частоты выбраны согласно частоте сети). Регион - понятие коммерческое, в большинстве случаев он введен для предотвраещения реэкспорта. Хотя иногда он привязан к выбору языка, ну, и как я говорил, это важно для световых пистолетов. Разрешение ТВ стандартно, 320х240 или 320х244. Это как раз PAL / NTSC, разное число строк. Цветовые схемы нафиг, это просто пресеты телевизора. Черезстрочность всюду одинакова: 50 - 25, 60 - 30. D/K, B/G не бери в голову, это относится к форматам эфирного вещания, по НЧ этого нет. В строке ряд пикселей, так же, как и ряд строк в кадре, отвдятся на "реперную линию". При настройке ТВ они выводятся за видимую часть экрана. Дело в том, что изначально экран не был четко прямоугольным, и картинка делалась чуть большей. Служебная информация (если есть) передается как раз в скрытых строках. Частота строчного прерывания разная в PAL и NTSC. Режимы с разным количеством строк зависят от региона. К примеру, игры от Кодемастерс писаны чисто в PAL, и в NTSC часть картинки пропадает.
Я как-то эксперементировал с приставкой, выставляя отдельно режимы VDP и значения в $A10000. В каком-то случае (пардон, не помню за давностью лет) в Bare Knuckle (опять же, не помню, в каком) начинались сбои синхронизации.
Цитата: GManiac
Возможно, я написал глупость  , особо не серчайте ;)

Все бы писали такие "глупости"

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1285
    • Просмотр профиля
Какая прога может менять регион у SEGA MD ромов
« Ответ #15 : 21 Сентябрь 2007, 01:56:57 »
Так, если частота кадров не зависит от частоты питания (это определяется внутренним устройством приставки, подробности которого я не знаю), то NTSC-приставка будет выдавать 60 Гц для телика с регенерацией, предположим, 50 Гц. В итоге получается проблема, как с монитором и VSync, когда какие-то кадры держатся дольше других (50 Гц PAL на 120 Гц монитора - по 2/по 3 кадра монитора на кадр игры), а в случае с теликом некоторые вообще пропадут, так? Я сеть просто для этого привёл...

Цитата
Разрешение ТВ стандартно, 320х240 или 320х244. Это как раз PAL / NTSC, разное число строк.

Но картинка 256х224 вроде бы растягивается на весь экран. А в аналоговом телевещании или 625х... или 525х..., как так получается?
...хотя всё понятно, если взять аналогию с комповской видеокартой и монитором и их режимами, я почему-то не подумал об этом.

Цитата
Частота строчного прерывания разная в PAL и NTSC. Режимы с разным количеством строк зависят от региона. К примеру, игры от Кодемастерс писаны чисто в PAL, и в NTSC часть картинки пропадает.

Можно поподробнее? Какие именно частоты? Если взять 15625 и разделить на 50, получается 312,5 (что и показывает Gens). В случае 262 и 60 частота должна быть чуть больше... Относительно Кодемастерс имеются в виду 240 ПАЛовских строк, часть которых не будет видна в режиме 224?

Цитата
писаны чисто в PAL, и в NTSC часть картинки

В каком именно месте должен быть NTSC, ведь VDP приставки поддерживает оба стандарта?

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1390
  • Пол: Мужской
    • Просмотр профиля
Какая прога может менять регион у SEGA MD ромов
« Ответ #16 : 21 Сентябрь 2007, 09:54:47 »
Действительно оказалось легко найти место проверки региона, просто даже вбив в поиск в winhex 00A10001.
В Darxide этот BEQ по адрсу 966. Поменял 6700 на 6000, поправил контрольную сумму и запускается в любом регионе.

Оффлайн Bugrim

  • Пользователь
  • Сообщений: 1305
  • Пол: Мужской
  • Будь честен!
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Попытаюсь объяснить :)
Как я понял, проблема в том, что если записать РОМ во флеш картридж, а потом воткнуть в консоль, то может оказаться, что регион не тот. Вот и возникает желание модифицировать ром.
Вот очень точно описанно желание мое, скачав программу gensuite и поменяв в бугермене регион с U на Е приставка его запустила, но в контре такого фокуса не получается провернуть. Возможно, за такой срок, что то изменилось, скажите как нынче выкручиваются?

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1285
    • Просмотр профиля
В общем случае регион надо менять самому - искать код проверки региона и переправлять.

Оффлайн Berstain

  • Модератор
  • Сообщений: 2734
  • Пол: Мужской
    • Просмотр профиля
Цитата: sergi
у SEGA 32X ромов
 

Ну дак большинство 32х ромов с пометкой (W)  Вроде как.

Оффлайн Mefistotel

  • Emu-Land Team
  • Сообщений: 1496
  • Пол: Мужской
  • Генерал армии Хаоса
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Какая прога может менять регион у SEGA MD ромов
« Ответ #20 : 03 Ноябрь 2015, 16:41:12 »
Подниму тему.
Вот есть, к примеру, ром Langrisser II (J) (REV02) [T+Eng_M.I.J.E.T.].gen. В нём в зависимости от выбора региона в эмуляторе меняется язык и в игре. Включил JAPAN - иероглифы, захотел USA - английский. Region switch в общем.

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

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1290
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Re: Какая прога может менять регион у SEGA MD ромов
« Ответ #21 : 03 Ноябрь 2015, 17:00:34 »
Mefistotel, что-то я меняю регион в эмуле, а в игре ничего не меняется, кроме логотипа сеги (ТМ).

Оффлайн Arbars

  • Пользователь
  • Сообщений: 1412
  • Пол: Мужской
  • Линукс кұрылысшы
    • ВКонтакте
    • Просмотр профиля
Re: Какая прога может менять регион у SEGA MD ромов
« Ответ #22 : 03 Ноябрь 2015, 17:07:48 »
Подниму тему.
Вот есть, к примеру, ром Langrisser II (J) (REV02) [T+Eng_M.I.J.E.T.].gen. В нём в зависимости от выбора региона в эмуляторе меняется язык и в игре. Включил JAPAN - иероглифы, захотел USA - английский. Region switch в общем.

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

Оффлайн blackbird_ru

  • Пользователь
  • Сообщений: 1026
  • Пол: Мужской
    • Просмотр профиля
Re: Какая прога может менять регион у SEGA MD ромов
« Ответ #23 : 03 Ноябрь 2015, 17:18:05 »
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

  • Пользователь
  • Сообщений: 1026
  • Пол: Мужской
    • Просмотр профиля
Re: Какая прога может менять регион у SEGA MD ромов
« Ответ #24 : 03 Ноябрь 2015, 17:58:44 »
А вот патчик на СоР, чтобы всегда японка была.

Оффлайн Mefistotel

  • Emu-Land Team
  • Сообщений: 1496
  • Пол: Мужской
  • Генерал армии Хаоса
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Какая прога может менять регион у SEGA MD ромов
« Ответ #25 : 04 Ноябрь 2015, 01:00:44 »
Mefistotel, что-то я меняю регион в эмуле, а в игре ничего не меняется, кроме логотипа сеги (ТМ).
Не знаю, что ты там меняешь. На скриншоте виден текст первого же игрового диалога при разных регионах в эмуляторе GENS.

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

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

Спасибо, посмотрим.

Оффлайн Rumata

  • Модератор
  • Сообщений: 23961
    • Просмотр профиля
Re: Какая прога может менять регион у SEGA MD ромов
« Ответ #26 : 04 Ноябрь 2015, 02:00:17 »
Цитата: Mefistotel
Region switch в общем.
Language switch скорее.
Цитата: Mefistotel
Как-то можно в роме сделать запуск только одного региона, не взирая на выбранные настройки эмуляторов?
а) Нет. Точнее можно, если влезть в код и заблокировать проверку и переключение
б) Зачем? По ходу это фишка переводчиков уже встречалось подобное


Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1290
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Re: Какая прога может менять регион у SEGA MD ромов
« Ответ #27 : 04 Ноябрь 2015, 09:37:33 »
Цитата: Mefistotel
Не знаю, что ты там меняешь. На скриншоте виден текст первого же игрового диалога при разных регионах в эмуляторе GENS.

Как до этих диалогов добраться-то?)

Оффлайн Mefistotel

  • Emu-Land Team
  • Сообщений: 1496
  • Пол: Мужской
  • Генерал армии Хаоса
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Какая прога может менять регион у SEGA MD ромов
« Ответ #28 : 04 Ноябрь 2015, 11:20:09 »
Наверное, нужно начать игру, раставить войска и выбрать команду "к бою".

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1290
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Re: Какая прога может менять регион у SEGA MD ромов
« Ответ #29 : 04 Ноябрь 2015, 11:28:17 »
Mefistotel, сделай мне сейв перед нажатием кнопки к бою, плиз.