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

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


Сообщения - SeregaZ

Страницы: Назад 1 2 [3] 4 5 6 7 ... 78 Далее
61
чужая память - всегда потемки. лучше когда своя.

62
после внесения изменения в ром файл - можно запускать пересчет чек суммы. но все это фигня. я ж говорю - нужен эмулятор в виде длл, чтобы не пересоздавать ром файл на жестком диске. считал один раз образ в память, издеваешься в памяти, и шлешь этот издёванный образ памяти в эмулятор, без промежуточного создания рома на жестком диске.

                  ; если был фикс чек суммы
                  If fixchecksumflag ;{
                    ; получаем новый размер файла
                    newromfilesize = Lof(#File)
                    ; прыгаем в адрес указания размера
                    FileSeek(#File, $1A4)
                    ; пишем новое значение
                    WriteBE32(#File, newromfilesize)
                    ; прыгаем в $200
                    FileSeek(#File, $200)
                    ; считаем контрольную сумму
                    CheckSumNumber.w
                    CheckSumValue.w                   
                    CheckSumValue = 0
                    While Eof(#File) = 0
                      CheckSumNumber = ReadBE16W(#File);
                      CheckSumValue + CheckSumNumber
                    Wend 
                    ; прыгаем в адрес записи контрольной суммы
                    FileSeek(#File, $18E)
                    ; пишем новое значение
                    WriteBE16(#File, CheckSumValue)
                    ;}
                  EndIf
                 
                  CloseFile(#File)
                 
                  Delay(100)
                 
                  ; запуск в эмуляторе

хотя, я опять сделал коряво :) в памяти надо было. я оказывается сначала пишу в ром, после гоняю файл и пересчитываю сумму.

63
поэтому то я и говорю что нужен эмулятор в виде дллки, чтобы подключать его к своим проектам и чтобы он работал с образом памяти, дабы не гадить на жестком диске. гадить - это не вежливо (хотя кто-бы говорил - сам так гажу в редакторе Дюны при создании экспорта в тайловую карту и сет экранов :) надо бы когданить переделать чтоб в памяти это все делалось, без временных файлов на hdd).

64
конечно не все хотелки реализовал, но вполне доволен результатом :)


глюки конечно фиксю... но и добавляю новые :)

65
пока не представляю как реализовать "горячее" дизассемблирование по клику мышкой в необработанный участок в окошке редактора... так-же надо сделать клик по метке, чтобы она подсвечивалась и прыгала во втором окошке в то место где она собственно и находится. потом уже предвижу проблему, которую хрен знает как победить :) как бы если метка прыгает на начало команды я еще пойму... но что делать если метка получается прыгнет не на саму команду, а на её данные?
типа
0x1234 0x4567
где 1234 команда джамп, а 4567 адрес джампа куда прыгать. и предположим где-то в коде попалась метка, которая ссылается не на начало всей этой конструкции - то есть не на 0х1234, а сразу на 0х4567. но у меня то эти данные уже "съедены" внутри функции и тогда в моем случае метка будет влеплена после джампа и после данных джампа, то есть метка станет ошибочной. а значит ром соберется с ошибкой, если вообще соберется. пока конечно такой проблемы еще не попадалось, но я разбирал то только парочку ромов всего... да и я явно какие-то редкие команды вовсе пропустил :)

66
i am talking not about palette edit it self, but apply changes, that can be found by comparise both files with hex editor. not everything need to be apply, but i think it is possible and no need to high skills for rom edit.

67
Sharpnull, у меня вопрос :) ну такой... на вскидку... насколько реально сделать из Gens эмулятора - библиотеку dll, как с GEMS ты делал? то есть чтоб можно было вшивать в программы и запускать из памяти ромы в ней и все такое прочее...

68
так в этом и суть. но пока что-то он ошибочно начал прыгать и все путать :) но меня убивает оооооооочень долгая загрузка. понятно еще куча команд не внесена, ошибочные параметры местами, прыжки не верно читает, и читает только то что явно связано с Reset... но я доволен как слон.

Добавлено позже:
и я так понимаю что не стоит рассматривать suba как указатель куда-либо? а то программа моя там начитала в заголовке с адреса Reset на свою голову несуществующих команд...

69
непутевый ASM... по моему этот дальтоник не различает  :cry:
exg d1, d0
exg d0, d1

70
чот так и не смог победить версию с листом :) где-то повылазили глюки... никак не могу найтить где именно. но есть одна теория...

в общем смотря на иду, где она останавливает блоки и разделяет - пока определил для себя что во время парсинга надо останавливаться на следующих функциях:
rte, rtr, rts, jmp, braпонятно, что я еще пока только начал и может там еще какие есть "финальные" функции... и вроде как bsr туда не входит. в смысле после неё есть дальше код в иде. но в одном месте она все-таки срабатывает как "конец функции".



вон чуть ниже точно такая-же bsr и концом она не является. каким образом ида все-таки поняла что первый bsr это конец функции? потому что всплыл дальше адрес, как вторая функция, на последующий адрес после brs? и типа поэтому ида решила что после первого bsr есть конец функции?


71
с отображением то в окне я так и делаю. в зависимости от положения вертикального скроллбара делается вывод с какого значения по какое надо выводить... тут все в порядке. не в порядке форматирование главного общего массива :) где бы строчки шли друг за другом для удобства отслеживания и привязки к положению вертикального скроллбара.

72
тем временем меня расстраивает слишком долгое время загрузки кода. сам парсинг на команды то шустрый, ноооооо потом, чтобы это все выводить в окошке - я делаю копию массива текстовых строчек кода, и форматирую, добавляя пустые строки между блоками и добавляю "бэшки" (dc.b) где код не разобран. вот этот процесс и занимает кучу времени при запуске.

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

пойду сделаю копию проекта, и попробую с листом. хотя настроен я весьма скептически на этот лист :)

73
ну пока моя первоначальная цель сделать парсер, чтобы он на выходе рожал 100% совместимый код с существующим ASM68K.exe. понятно что ASM68K.exe кривой и косой и местами прозёвывает команды с ошибками, но очень удобно что он в количестве одна штука и очень маленький и простой в использовании. и можно пихать копию в каждую папку с проектом. ида так делать код не умеет. да и докучи ида еще и с ашипкаме код рожает :) я прям удивился когда увидел. святая ида и на тебе!

74
this is early his palette's version. he made new version. but here is without that last changes. that is why i am talking about hex editor comparison and manually fix places, where was set new palettes.

75
тут в процессе запиливания очередного шедевра у меня возникли некоторые затруднения... как бы нормальная программа состоит из блоков. типа тут функция такая, тут сякая и все они взаимосвязаны между собой. почему с ромами на сегу это не работает? то есть зная адрес начальной функции Reset - заходим по этому адресу, читаем код, и если там есть ссылки на другие участки рома с кодом - прыгаем туда тоже и читаем. но чото у меня таким образом находит не все. хотелось бы понять почему :) ведь если прямой связи между участками кода нет, то как при сборе рома эти участки в ром попадают? на ум приходит только одна мысль, что типа возможно что основной код крутится на 68к и, скажем, частично какой-то код отправляется в Z80, там работает и предположим должен вернутся в 68к в другое место. тогда я еще пойму почему при разборе 68к код находится, но не весь. нооооо эта моя теория такая себе... слабенькая.

76
sound problems
i dont know about "arcade edition". i though it was UMK3Hack. check sound here and write feedback:
* MK3Hack_NEW.zip (5607.32 КБ - загружено 62 раз.)

about Nik Pi pals edit... i think you can use Hex editor and choice compare menu for both roms and add some changes from last Nik Pi's version to this. if it work fine with sound. but i think it have some problems too, because i didnt save original first version of sounds and do some experiments on main project... it means some tracks can have wrong sound. but i dont remember anything. it was too long time ago...

77
как бы написать и не обидеть... ничего не буду писать.

78
Цитата
src я не правил. Я рассчитываю на сохранение листинга рядом с ромом.
чтоб тебя... это не удобно и не верно с точки зрения безопасности информации. например я открываю чужой разобранный проект, где уже лежит папка src с такими файлами. но сохранить хочу новый переразбор в другой папке. но получится что оригинальную папку ида перезапишет, хотя и кинет lst файл в ту папку куда я и хотел, а вот src перезапишет оригинальную в изначальной папке с ромом.

это первый вариант ассемблера. ошибки сверху не смотри, так как это все равно не тот ассемблер. а вот леа как раз то. пока не добавишь вручную во все места еще FF чтобы стало 8 символов - он не заведется.


79
ошибки нет? может ты старое по ошибке залил? как ругалась lea при сборке - так и ругается. как создавалось src не там - так и создается. хотя может я чо не туда сохранил еще... еще раз скачаю, перепроверю.

Добавлено позже:
и ни фи га :) все по старому.

Добавлено позже:
или я не правильный асм выбираю при выгрузке?

80
ида 77. версия 32 битная. скачал новую версию тулсов как ты сказал, распаковал и открыл по новой ром батл сити. сам ничего не разбирал - что изначально ида разобрала - то и выгружаю. и там вот с этой lea ошибка. ну и с путями до папки src, в случае если ром лежит в одном месте, а файл lst я сохраняю в другом месте.

Добавлено позже:
и проблема с диалогом отмены при создании lst файла. отмена не работает - ида все равно ныкается создавать файл по новой. то есть в диалоге на моменте выбора вида ассемблера:
Choose output assembler
по идее кнопка отмены должна полностью отменять процесс выгрузки, но тут отмена работает по сути как подтверждение что ты типа выбрал первый вариант AS Assembler и начинает выгружать. но по идее должна была произойти глобальная отмена выгрузки.

81
ида разбирает код как
lea     ($FFF152).w,a0ASM68K.exe при сборке такого файла - ругается что адрес инвалидный. если вручную найти все такие строки и исправить на
lea     ($FFFFF152).w,a0то все начинает собираться без ошибок и работать.

82
при сохранении папки src - используется путь до рома, а не до места сохранения lst. я ж объясняю - выбрал сохранить lst на диске Д, а папку scr он создает рядом с ромом :) в итоге lst и scr разлучены с детства. так то понятно если сохранять lst рядом с самим ромом - то проблемы как бы и нет... но она все-же как бы есть :)

и все так-же не хватает lea FF в начале. асм ругается на эти строки.

83
рядом с ромом src надо папку создавать. и видимо независимо от того куда путь для создания lst. на диск д сохранял сам файл lst, а эти файлы из инклуда он рядом с ромом положил :) кое кто, не будем показывать пальцем, забыл в диалоге сохранения файла указать этот-же путь для сохранение инклудных файлов.

еще запускал иду от администратора.

84
и экспорт не в LST, а в ASM ваще не происходит. один файл с этими инклудами, а рядышком ничего. так-же папку src создавал. хм. надо видимо папку src создать в виндовс темп и в моих документах. или там или там наверное содержимое появится.

и кстати! а для чего папка script? уж не регистрация ли это каких нужно путей в системе чтобы ида все правильно делала?

85
похоже эти строки можно закомментить.

но опять таки старая проблема вылезла:
lea     ($FFF152).w,a0не хватает FF спереди: $FFF152 => $FFFFF152

мде... а дальше все посыпалось при сборке :) видимо нельзя их комментить :) как раз видимо описание этих переменных


при экспорте надо было галкой помечать ASM68K Assembler? то есть это как раз совместимый с ASM68K.exe который потом и собирает ром? а то может я не тот пункт выбираю и поэтому дело швах...

Добавлено позже:
ахахахаха кнопка отмены не работает в диалоге создания файла :) жму отмена - а Ида все равно ныкается создавать файл :))))

86
ну черт знает. надписи в эмуляторах чуть различаются. настройки звука одинаковые в них обоих. но в одном прям ярко звучит (из старой иды 6.8), а во втором (и в той версии что у меня эмулятор генс для игр на компе) как будто из бочки. плюс стартовая мелодия на выборе бойца бьет с ошибкой барабан. примерно как в комикс зоне одна из мелодий играет не верно - вот та-же фигня и тут со звуком. помню мы решали в GEMS эмуляторе такую-же проблему... ну как решали... я там присутствовал :) там какой-то множитель кароче "не тот" типа он выставлен под какую-то там сеговскую частоту... а на компе то 44100. и поэтому звучит отвратно. а чтобы звучало правильно - надо эту там какую-то циферку влепить другую. то есть по отношению к приставке код будет не точным, но зато на компе будет играть более сочно. https://www.emu-land.net/forum/index.php/topic,83239.msg1444575.html#msg1444575

ничего я не понял с этой отладкой чего отключать где как... ничего не включая чистую иду открою, загрузить готовый idb файл, выбираю LST... и понеслась моча по трубам три часа выгружает при сохранении. ASM сохранение чуть быстрее, но все равно один фиг три часа ждать. 6.8 ида выгружала ASM почти молниеносно.

запускал из папки, которую я скачал. v2.
v1 в старой иде он сам там откуда-то эмулятор запускает...

88
Цитата
4. Отладчик идёт в архиве с остальным. Но для экспорта тебе он не нужен. Можно и статично всё разметить, после чего выгрузить.
а есть инструкция четко по пунктам на пальцах куда что добавить, исправить и вписать, чтобы этот самый отладчик Gens заработал? в 6.8 то работает и эмулятор запускается. причем походу версия круче или новее, чем та которая у меня - звук сэмплов там получше. а вот в 7.7 или 8.3 ничего не запускается. надо как-то втолковать Иде где лежит этот самый Gens.

Цитата
3-й питон нужен иде.
насколько критично его отсутствие? я просто не пользуюсь этим питоном... вроде ж старая 6.8 все разбирает в роме и без него. это 7.7 и 8.3 брыкаются. если таевский баттл сити все разбирает вроде бы нормально, то вот немезисовский мк3 в 6.8 разбирается и видит кучу кода, а в новых идах не хочет. в начале только чуток разберет и бросает.



я так полагаю надо запустить отладчик и там поиграть чтобы код увиделся и добавился?


Цитата
No i/o port definitions for device 'sega_md' are found
Feel free to add them to exceptions.cfg

Добавлено позже:
ааааа... то есть она не умеет запускать эмулятор сама, как 6.8 ида? понятно теперь.

Добавлено позже:
и в этой v2 видимо эмулятор говнее, так как в v1 звук лучше чем в этой версии.

Добавлено позже:
и все-таки что-то у меня видимо работает не так. выгрузка lst работает меееееедленно. три часа так может выгружать. впрочем asm тоже. в 6.8 такого не было. быстро выгружало.

89
так. ладно, с начала.

1. запускать надо 32 битную версию ИДЫ я так понял.
2. предварительно засунув в нужные папки из архива tools v2 - loaders и plugins
3. при загрузке рома выбирать нужно варианты:
Sega Genesis/MegaDrive Rom v.2
Motorola MC68xxx universal emulator (или все-таки обычный MC68000 а не универсальный?)

при этом выборе будет выбивать сообщения х32 и CD сегменты - шлем их нафиг и отказываемся? там третий еще диалог будет FDC и Time сегменты какие-то. тоже слать их лесом и отказываться?

4. когда уже окно программы иды откроется - надо будет выбрать окошко дебаггера. и я так понимаю надо выбрать пункт GensIDA Debugger plugin. и тогда вылезет окошко, что типа ожидается Gens... который я понятное дело не смог куда надо установить. хотя там вроде мелькало какое-то сообщение, что дескать надо в exceptions.cfg что-то там добавить, но я его открыл, посмотрел бараньими глазами и закрыл. не понятно как туда добавлять...


вот значится на пока остаются следующие вопросы:
как доустановить эти папки gens и script из архива с тулсами v2
нахрена нужен питон, на который ида все время ругается
почему выбор варианта выгрузки в LCT рожает файл три часа, выписывая по байтно в строчку. понятно видимо сначала код нужно было разобрать... но все равно бред. выгрузка в ASM работает практически моментально. другое дело что там бывают ошибки...

90


проблема в том, что иногда в комментах проскальзывают спецсимволы и в результате файл выгрузки асм файла в моем случае читается не верно. то есть должно читать построчно, а по факту бывает берет и жрет две строки, как одну... из-за чего путанница частенько происходит. вот есть ли возможность в иде (6.8 в моем случае) оставить комментарии, где прям много текста, и прибить где односимвольные комментарии ида добавляет. типа '?' вот такого рода комменты портят мне все дело :(

Добавлено позже:
хы... и оно даже запустилось после всех измывательств :)))) правда повисло сразу после нажатия старт...

Страницы: Назад 1 2 [3] 4 5 6 7 ... 78 Далее