| Разработка и ромхакинг > Ромхакинг |
| Вопросы новичков |
| << < (21/22) > >> |
| Sharpnull:
--- Цитата: radonur от 03 Февраль 2026, 11:54:15 ---Хочу перевести игру для GBA под названием Rayman Raving Rabbids --- Конец цитаты --- Mesen как эмулятор. В переводе "Rayman - Raving Rabbids (U) [T-Rus UniGame]" защита от изменений добавлена переводчиками, но только для 0xC00000-0xFFFFFF, где нет перевода, а только их код для их заставки при запуске игры :lol: Чтобы убрать эту бесполезную заставку, в начале рома вернуть 2E 00 00 и заполнить нулями FFF7C4-FFFFFF. Перевод у них ленивый, изменили шрифты (не сжато) и простой 8-битный текст без расширения, поэтому "МУЗ." в настройках. Press Start не перевели, её графика сжата и находится в 9371D4-938ADB для английского языка (поэтому сомневаюсь, что вы тоже сделаете хороший перевод). Ещё можно было бы убрать экран выбора языка. |
| radonur:
Люди подскажиите пожалуйста как переводить игры для сеги |
| Беларус:
--- Цитата: Беларус учит русский от 25 Январь 2009, 16:58:16 ---Общее, что есть внутри игр - это текст на английском языке. Если он не сжат, то находитса поиском в хекс-редактре. --- Конец цитаты --- В нём же и попробуй менять. |
| radonur:
--- Цитата: Sharpnull от 03 Февраль 2026, 14:01:46 ---Mesen как эмулятор. В переводе "Rayman - Raving Rabbids (U) [T-Rus UniGame]" защита от изменений добавлена переводчиками, но только для 0xC00000-0xFFFFFF, где нет перевода, а только их код для их заставки при запуске игры :lol: Чтобы убрать эту бесполезную заставку, в начале рома вернуть 2E 00 00 и заполнить нулями FFF7C4-FFFFFF. Перевод у них ленивый, изменили шрифты (не сжато) и простой 8-битный текст без расширения, поэтому "МУЗ." в настройках. Press Start не перевели, её графика сжата и находится в 9371D4-938ADB для английского языка (поэтому сомневаюсь, что вы тоже сделаете хороший перевод). Ещё можно было бы убрать экран выбора языка. --- Конец цитаты --- Ну если там хотя-бы текст редачить можно, я могу попробовать сделать перевод с их шрифтом. Это все равно будет лучше чем их убогая локализация. А ещё сразу вопрос,можно ли как-то заменить названия уровней и текст в переводе Super Mario Advance 2? Если да то как и через что. |
| Sharpnull:
--- Цитата: radonur от 11 Март 2026, 17:17:08 ---можно ли как-то заменить названия уровней и текст в переводе Super Mario Advance 2? Если да то как и через что --- Конец цитаты --- Там легко. Названия уровней как tilemap лежит в роме (https://www.coranac.com/tonc/text/regbg.htm#sec-map), у последнего элемента установлен старший бит для указания на конец. Например, ЯОСХИ'С ХОУСЕ в роме 18 11 0E 11 12 11 07 11 08 11 6B 11 12 11 1F 11 07 11 0E 11 14 11 12 11 04 91, последний элемент 0x9104 это 0x1104 (будет в VRAM) + 0x8000 (для конца). Текст вида "Добро пожаловать на земли динозавров!" с D63E4 в роме, каждый символ - 1 байт, относительно VRAM $6000, поэтому 03 - Д, 4E - о, для переноса строки добавить 0x80, для завершения текста использовать все переносы, для пустых переносов - 9F (0x1F (пробел) + 0x80 (конец строки)). Это было "как" изменить, "через что" как удобнее, кто-то использует Kruptar, можно самому написать программу. Для просмотра значений tilemap (для названий уровней), в Mesen открыть Tilemap Viewer, выбрать первый символ названия уровня, нажать F1, откроется Memory Viewer с Memory Type: Video RAM, по этим значениям искать в роме. |
| consolegamer:
привет! :)не получается разобраться с круптаром(хочется переводить игры удобно по поинтерам), конкретно не получается составить список поинтеров в самой программе. Например игра Snoopy Concert[Eng1.00]: первый поинтер в роме по адресу 40002, по хексу там 4e02. Первый текст начинается по адресу 4024e в роме. С виду все просто, но пробовал круптар 6-ой и 7ой, делал разницу смещений по инструкции с magicteam сайта, но круптар выдает мне поинтеры криво(другие адреса), и я не получаю текст для перевода, а получаю фигню. Разницу смещений делал так: 4024e-024e=40000. Может быть кто подскажет что делаю не так, или видео обучающее, или другую программу |
| paul_met:
--- Цитата: consolegamer от 24 Март 2026, 21:27:32 ---привет! :)не получается разобраться с круптаром(хочется переводить игры удобно по поинтерам), конкретно не получается составить список поинтеров в самой программе. Например игра Snoopy Concert[Eng1.00]: первый поинтер в роме по адресу 40002, по хексу там 4e02. Первый текст начинается по адресу 4024e в роме. С виду все просто, но пробовал круптар 6-ой и 7ой, делал разницу смещений по инструкции с magicteam сайта, но круптар выдает мне поинтеры криво(другие адреса), и я не получаю текст для перевода, а получаю фигню. Разницу смещений делал так: 4024e-024e=40000. Может быть кто подскажет что делаю не так, или видео обучающее, или другую программу --- Конец цитаты --- Неправильно вычисляешь значение ptReference (Адрес строки = ptReference + значение поинтера). Или не учитываешь параметр ptBIG_Endian (прямой или обратный порядок байт у поинтера). |
| consolegamer:
Не получается все равно. Объясните кто-нибудь нормально по шагам хотя бы по круптару 6-му, а то я уже 4 игры перевёл, и намучился я с этим translhextion. Может благодаря этому будут новые переводы игр. Выделять байты вручную заколебался, промажешь-и игре капут :) |
| paul_met:
--- Цитата: consolegamer от 25 Март 2026, 10:35:49 ---Не получается все равно. Объясните кто-нибудь нормально по шагам хотя бы по круптару 6-му, а то я уже 4 игры перевёл, и намучился я с этим translhextion. Может благодаря этому будут новые переводы игр. Выделять байты вручную заколебался, промажешь-и игре капут :) --- Конец цитаты --- Ты бы хоть скрин выложил, что у тебя там получается / не получается в Круптаре. Может, таблица неправильно составлена или адрес поинтера / строки неверный. Гадать можно и дальше. |
| consolegamer:
Вот например 6-ой круптар зависает наглухо с такими настройками |
| paul_met:
--- Цитата: consolegamer от 25 Март 2026, 18:09:22 ---Вот например 6-ой круптар зависает наглухо с такими настройками --- Конец цитаты --- Я имел ввиду скрин окна после извлечения текста (дерево адресов строк, извлечённый текст). И таблицу желательно приложить. |
| consolegamer:
В шестом не получается показать, виснет сразу. В 7-ом вот скрины |
| paul_met:
Ну теперь всё ясно. Адреса поинтеров вводишь неправильно (это видно по параметру pnSrcPtrPos). Перед адресом поинтера в hex формате надо добавлять символ "h". |
| consolegamer:
omg наконец-то :) |
| Томахомэ:
Каким образом виндовые экзешники выполняют код, ответственный за действия, повторяемые с каждым новым кадром - считывание устройств управления, отрисовку нового кадра и т. д.? У ромов для простеньких cartridge based-консолей или ROM based-автоматов для этого есть обработчики аппаратных кадровых прерываний, но у ОСек наверняка же ведь ситуация посложнее. |
| Беларус:
Ты не пользуешся нейросетями? Они бы смогли хорошо ответить. Очень хорошый и доступный в РФ - Deepseek (не забудь там оставить нажатой кнопку Search). Также Гугл теперь встроил свой в поиск Режим ИИ. По простому говоря, в современных системах нет прерываний и програмист сам решает когда обновлять всё. Например, измеряет прошедшее время, и если оно более 16 милисекунд, то запускает новый цыкл опроса, обновления. https://chat.deepseek.com/share/fs2wxxqv9xhn33f1mg |
| Томахомэ:
--- Цитата: Беларус от 03 Апрель 2026, 15:48:17 ---Ты не пользуешся нейросетями? Они бы смогли хорошо ответить. Очень хорошый и доступный в РФ - Deepseek (не забудь там оставить нажатой кнопку Search). Также Гугл теперь встроил свой в поиск Режим ИИ. По простому говоря, в современных системах нет прерываний и програмист сам решает когда обновлять всё. Например, измеряет прошедшее время, и если оно более 16 милисекунд, то запускает новый цыкл опроса, обновления. https://chat.deepseek.com/share/fs2wxxqv9xhn33f1mg --- Конец цитаты --- Нажатой она же синеет, да?... Так вот почему за прерывания спрашиваю - среди портов под ретро-системы на правах различных бонусных активностей для других игр, которые я планирую толкать в виде движко-, SDK-, а может, даже и языконезависимых высокоинтегративных модулей на ASM разным хоумбрюерам, я планирую и переписать под Neo-Geo дизассемблят нескольких казуальных немецких "офисных" игрушек (например, первые части Moorhuhn и первый Frutti Freak, причём последний - образца лета-осени 2005 г.). И опыт в обращении с ними, видимо, обещает быть полезным и для портировки игр с различных ROM based-платформ - подскажет, как бы безболезненно перенести код, ответственный за повторяющиеся каждый кадр действия в "стержневую" подпрограмму модуля, а обработчики у материнской игры не трогать. |
| lupus:
Коллеги, я не совсем в теме мапперов NES, поэтому релил спросить: Contra (u) и (j) на одном и том же или разных? Пытаюсь подменить ром contra.nes внутри рома contra 4 для nds на чифнетовский перевод, но ром contra.nes не стартует. Думаю, маппер виноват или размер рома?! |
| Sharpnull:
--- Цитата: lupus от 04 Апрель 2026, 21:42:39 ---Contra (u) и (j) на одном и том же или разных? --- Конец цитаты --- Разные. Графика отличается в том числе от этого. Посмотреть можно в эмуляторе как "NES Header Editor", есть отдельные просмотрщики заголовка рома, я однажды делал. Для Contra есть порты на MMC3 маппер, я один такой делал. |
| lupus:
Sharpnull, спасибо. Судя по всему, встроенный эмулятор поддерживает: --- Код: ---Mapper Number: 2 = Nintendo UxROM --- Конец кода --- --- Код: ---Mapper Number: 4 = Nintendo TxROM/HKROM (MMC3) --- Конец кода --- . Может быть есть где-то под рукой патч в MMC3 и можно ли его накатить на переведённый ром? С этими блокировками у меня даже RHDN не грузит. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |