Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - consolegamer

Страницы: [1]
1
я качал не этот ром. качал с эмуленда с таким именем Kamen Rider Club (Japan).nes. Сравнил тот, что ты качал и тот, что я качал. оказалась разница только в 6-ом,7-ом,16-ом байтах. Интересно какой эмулятор ты используешь, и почему у меня твой ром с именем Kamen Rider Club - Gekitotsu Shocker Land (J) [!].nes даже на приставке через картридж крикза выдает эти глюки с графикой в бою, что доказывает, что мой перевод не вызвал эти глюки. Вобщем понятно, что твоё отношение к начинающему ромхакеру - насмешка

2
Эти баги с графикой не из-за перевода. Я тоже сначала так подумал. Они на определенных эмуляторах и на китайском клоне денди имеются на оригинальном роме без перевода. Например, по бокам справа и слева есть стенки кирпичные, которые должны пробиваться, когда персонаж наносит очень сильный удар, они вообще не видны, вместо них символы. fceux, mednafen показывают нормально. у меня нет японской приставки, возможно на ней тоже нет багов

3
Привет. Перевел Kamen rider club (nes). Графику и текст, но не полностью. Плюсы:игра теперь понятна(перевел все предметы по англ.гайду, меню в паузе, меню боя, названия уровней, персонажей, статистики и т.д.)минус-спецудары назвал просто спец 1 спец 2 спец 3 и т.д., и врагов обозвал не в переводе с японского, а по внешнему виду-"воин","цветок","жук","глаз", "с косой" и т.д.)надеюсь добавите на сайт:)Идея создать перевод возникла после того, как посмотрел как её прошёл Коля Кулхард на своём канале ютуб, захотелось самому научиться играть и другим дать

4
С add r1,r1,1h завелась игра . Вы - мои герои

5
Подскажите пож-та, если можете. Я делаю прыжок в месте, где выполняются 16битные команды, на ram-адрес 08800000, что соответствует концу рома, процессор сам при этом меняет режим и начинает исполнять команды в 32 битном режиме, далее делаю возврат, и он не переключается обратно на 16битный режим. 5 дней уже пытаюсь сделать. Вот лог процессора, в который я добавил комментарии:


Собираю адрес в регистре r1 и делаю прыжок
080754FA 2188 mov r1, #0x88             R00=00000014 R01=0000001a R02=0000000f R03=0807c8b4 R04=0807c938 R05=00000015 R06=fffffdac R07=00000000 R08=03000e30 R09=030005cc R10=00000100 R11=000001ff R12=00000000 R13=03007e9c R14=08074885 R15=080754fc
080754FC 0509 lsl r1, r1, #0x14           R00=00000014 R01=00000088 R02=0000000f R03=0807c8b4 R04=0807c938 R05=00000015 R06=fffffdac R07=00000000 R08=03000e30 R09=030005cc R10=00000100 R11=000001ff R12=00000000 R13=03007e9c R14=08074885 R15=080754fe
080754FE 4708 bx r1                           R00=00000014 R01=08800000 R02=0000000f R03=0807c8b4 R04=0807c938 R05=00000015 R06=fffffdac R07=00000000 R08=03000e30 R09=030005cc R10=00000100 R11=000001ff R12=00000000 R13=03007e9c R14=08074885 R15=08075500

Восстанавливаю старые команды, которые я затёр прыжком, но уже в 32битном режиме
08800000 e0900004 adds r0, r0, r4       R00=00000014 R01=08800000 R02=0000000f R03=0807c8b4 R04=0807c938 R05=00000015 R06=fffffdac R07=00000000 R08=03000e30 R09=030005cc R10=00000100 R11=000001ff R12=00000000 R13=03007e9c R14=08074885 R15=08800004
08800004 e3a02000 mov r2, #0x0        R00=0807c94c R01=08800000 R02=0000000f R03=0807c8b4 R04=0807c938 R05=00000015 R06=fffffdac R07=00000000 R08=03000e30 R09=030005cc R10=00000100 R11=000001ff R12=00000000 R13=03007e9c R14=08074885 R15=08800008
08800008 e19000f2 ldrsh r0, [r0, r2]      R00=0807c94c R01=08800000 R02=00000000 R03=0807c8b4 R04=0807c938 R05=00000015 R06=fffffdac R07=00000000 R08=03000e30 R09=030005cc R10=00000100 R11=000001ff R12=00000000 R13=03007e9c R14=08074885 R15=0880000c

Собираю адрес в регистре, чтобы прыгнуть на него, т.е. вернуться обратно
0880000C e3a01008 mov r1, #0x8          R00=fffffb9b R01=08800000 R02=00000000 R03=0807c8b4 R04=0807c938 R05=00000015 R06=fffffdac R07=00000000 R08=03000e30 R09=030005cc R10=00000100 R11=000001ff R12=00000000 R13=03007e9c R14=08074885 R15=08800010
08800010 e1b01601 movs r1, r1, lsl #0x0c          R00=fffffb9b R01=00000008 R02=00000000 R03=0807c8b4 R04=0807c938 R05=00000015 R06=fffffdac R07=00000000 R08=03000e30 R09=030005cc R10=00000100 R11=000001ff R12=00000000 R13=03007e9c R14=08074885 R15=08800014
08800014 e2811075 add r1, r1, #0x75     R00=fffffb9b R01=00008000 R02=00000000 R03=0807c8b4 R04=0807c938 R05=00000015 R06=fffffdac R07=00000000 R08=03000e30 R09=030005cc R10=00000100 R11=000001ff R12=00000000 R13=03007e9c R14=08074885 R15=08800018
08800018 e1b01201 movs r1, r1, lsl #0x04  R00=fffffb9b R01=00008075 R02=00000000 R03=0807c8b4 R04=0807c938 R05=00000015 R06=fffffdac R07=00000000 R08=03000e30 R09=030005cc R10=00000100 R11=000001ff R12=00000000 R13=03007e9c R14=08074885 R15=0880001c
0880001C e2811005 add r1, r1, #0x5      R00=fffffb9b R01=00080750 R02=00000000 R03=0807c8b4 R04=0807c938 R05=00000015 R06=fffffdac R07=00000000 R08=03000e30 R09=030005cc R10=00000100 R11=000001ff R12=00000000 R13=03007e9c R14=08074885 R15=08800020
08800020 e1b01401 movs r1, r1, lsl #0x08 R00=fffffb9b R01=00080755 R02=00000000 R03=0807c8b4 R04=0807c938 R05=00000015 R06=fffffdac R07=00000000 R08=03000e30 R09=030005cc R10=00000100 R11=000001ff R12=00000000 R13=03007e9c R14=08074885 R15=08800024

Прыгаю на адрес
08800024 e12fff11 bx r1                 R00=fffffb9b R01=08075500 R02=00000000 R03=0807c8b4 R04=0807c938 R05=00000015 R06=fffffdac R07=00000000 R08=03000e30 R09=030005cc R10=00000100 R11=000001ff R12=00000000 R13=03007e9c R14=08074885 R15=08800028

И тут процессор не переключается обратно на 16битный режим, а начинает выполнять 16битные команды в 32битном режиме, и игра поэтому виснет
08075500 41081109 tstmi r8, r9, lsl #0x02   R00=fffffb9b R01=08075500 R02=00000000 R03=0807c8b4 R04=0807c938 R05=00000015 R06=fffffdac R07=00000000 R08=03000e30 R09=030005cc R10=00000100 R11=000001ff R12=00000000 R13=03007e9c R14=08074885 R15=08075504


В документации написано, что режимы меняются командой bx.

Прилагаю оригинальный ром, и ром с моими изменениями который виснет, с которого писал логи https://disk.yandex.ru/d/jb2-imm6xOzobw

6
Не понял что за проблемы, диапазон 08000000- просто дольше выполняется для 32-битных инструкций из-за шины в 16 бит, поэтому там лучше выполнять THUMB инструкции (16 бит) или скопировать код во внутреннюю память (Work RAM 32K  03000000-03007FFF), как написано в CPU Mode Performance: https://problemkaputt.de/gbatek-gba-memory-map.htm.
ну я пробовал писать 32х битные команды в диапазоне 08000000-, а cpu-трэйсер VisualBoyAdvance-SDL-H показал мне, что 32хбитные команды выполнились как 16битные, т.е .выполнились не правильно. может нужно какую-то команду давать, чтобы переключаться, я не программист))  я просто ещё не умею делать прыжки на 16 битных командах, в этом у меня проблема. а так то да, никаких проблем у специалистов.

7
Вот тут можно потренироваться в ассемблировании, и сразу же проверить как дизассемблируется: https://shell-storm.org/online/Online-Assembler-and-Disassembler/
ооочень помогает

Добавлено позже:
У GBA процессор ARM, поэтому смотреть инструкции к нему. Инструкция b для "прыжка" без условий, относительно PC, т. е. от места вставки инструкции. bl "прыжок" на функцию и bx возврат из неё (нужен параметр, обычно lr он же r14). Абсолютные "прыжки" сложнее. Эксперименты можно делать в no$gba, ПКМ по коду > Change Instruction. Но я не разбираюсь, курите доки.
как я понял, адрес, на который прыгаешь, собирается в регистре r1(например) и на него делается прыжок bx r1

Если я правильно понял, процессор гба работает с 32х битными командами только в определенном диапазоне памяти(0x03000000-...) и с 16битными командами в диапазоне 0x08000000-..., что создало проблемы при прыжке.

8
Добрый день. Хочу модифицировать игру на гба. Но мне не понятно, как делать прыжок на адрес памяти и возврат. В денди и сега умею, там просто, а вот в гба пока что никак не получается разобраться. SDK пробовал ставить, но не могу в нём разобраться. Может кто-нибудь подскажет опкод прыжка на адрес 087FFF50 и возврата? опкод формируется непонятным образом. С помощью дизассемблера увидел код игры, и вроде бы нашёл прыжок:
   опкод           инструкция         вероятно адрес памяти, на который идёт прыжок
35 f0 ee fa          bl                                             FUN_08035864                                                                    undefined FUN_08035864()
Попробовал сам написать такую же инструкцию в гба-ассемблере goldroad и скомпилировать, но скомпилированная команда не понимается эмулятором гба, что кажется означает то, что goldroad не правильно работает
Прыжки вроде бы осуществляются командой bx



9
1-3 поколения / Subor SB-225 замена джойстика
« : 30 Август 2023, 16:26:30 »
Благодарю, получилось

10
1-3 поколения / Subor SB-225 замена джойстика
« : 28 Август 2023, 16:38:41 »
Привет. хочется поменять родной несъёмный джойстик на новый с магазина. Плюс с минусом вычислил вроде как, data, latch и clock перепробовал все комбинации- не работает новый джойстик "8-bit" падла)в некоторых комбинациях при подключении картриджа с многоигровкой он как бы сам нажимает вниз бесконечно. Ещё слышал, что можно переделать порт для пистолета, чтобы он стал портом первого джойстика, это решило бы проблему, но я не нашёл информации о том, как это сделать. Фотки консоли тут https://drive.google.com/drive/u/0/folders/1-dU1ms39lwgdhIRu-1aOky4SJVKpEdXv

11
Игры на консолях 1-4 поколений / [SMD] Rings of Power
« : 23 Сентябрь 2022, 17:15:40 »
последняя версия эмулятора Mednafen поддерживает сохранение этой игры

12
Благодарю, парни! новичёк в этом деле, попробую разобраться..

13
Можно перехватить запись в VRAM, там будет виден код декомпрессии, потом перехватывать вызов кода декомпрессии и смотреть какой адрес используется
какой программой можно это сделать?m68k debugger-ом(gens r57shell mod) пробую ставить бряк на vdp, ничего не происходит...или может быть кто-то подскажет адрес оффсета?..

14
Всем привет! :) хочу перевести tiny toon adventures acme all stars (сега). Нашёл текст игры в роме и хекс-значения всех английских букв. Но не могу найти спрайты букв, чтобы перерисовать их в русские. программа yy-chr не показывает буквы, кажется спрайты букв сжаты. Подозреваю что алгоритмом lzkn3, т.к. увидел нужную игру на этой странице https://www.romhacking.net/utilities/1029/. Эта программа делает компрессию/декомпрессию, и когда это делаешь с помощью неё, она просит дать ей адрес offset-а, а я не знаю что это такое и как это найти...в правильном ли я направлении иду..

Страницы: [1]