Автор Тема: Gens Rerecording 11 Win32 r57shell mod  (Прочитано 16344 раз)

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

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1390
  • Пол: Мужской
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #30 : 24 Май 2010, 19:42:33 »
Может найдутся примеры подобных скриптов в интернете. Если получится что-нибудь со скриптом, то выложу.  У самого времени мало свободного.

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #31 : 24 Май 2010, 22:41:14 »
Да, забыл сказать что по 4 байта реверснуто... ну да ладно уже сделал скрипт, и некоторые фиксы эмуля...
Всё в архиве (эмуль + 2 скрипта).
gens.idc для синхронизации с идой.
gensmap.idc чтобы загружать *.map которые Gens Debug генерит мой ). В скрипте есть закоментированная строчка - вывод тех оффсетов где было произведено НОВОЕ дизассемблирование.

Добавлено позже:
Раскажу несколько хитрых планов.
1) План "полный дизасм": Сидим шпилим несколько часов в игру, пытаемся делать всё что в ней можно... можно даже когда выходишь, сохранять *.map и потом если снова засел шпилить - подгружать. И когда надоест, сохраняем *.map и грузим в Ida через скрипт, ТаДа - все места кода которые были выполнены - в иде дизассмены.
2) План "Что было несколько секунд?": Нужна сноровка) Для начала нужно сделать сэйв, затем, закрыть ром, открыть его сразу на этом сэйве, и подождать эти заветные несколько секунд, и сразу в дебаге нажать например Step Into (чтобы ром на паузу поставить) или просто Esc. Сохраняем карту, и теперь нужно иде как-то сказать что всё данные... (полюбому как-то можно быстро это сделать, лень сча это рыть). И опять же запустить скрипт с подгрузкой map. А блин, ида все деревья возможные продизасмит сама, вот ацтой, может есть опция где это отключить, незнаю, ладно, я то просто делал также только я там где код - сохранял в отдельный файл, итого получалась вырезка только того что выполнялось. так...
3) План без названия, да и хрен кто его наверно выполнит... берём играем играем, и какое-то действие не делаем заведомо ни разу. затем сохраняем *.map, потом делаем это действие, и сохраняем в другое место *.map потом сравниваем 2 файла каким-нить filecompare например, и те байты в которых различие с большой вероятностью отвечают за это действие. Теперь как из байтов вычислить оффсет? (byteoffset/4)*64+(3-byteoffset%4)*8+bitoffset*2 - да вот такая сложная формула. %4 - взять остаток от деления на 4. bitoffset - номер бита несовпадающего (от 0 до 7) если сильно точно не надо то можно на bitoffset забить.
Собственно планов хитрых можно много напридумывать... для отловки... "план перехват".

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1390
  • Пол: Мужской
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #32 : 25 Май 2010, 12:59:38 »
Здорово.
По поводу сравнения файлов: тут нужно просто получить два рома, в которых будут только исполненные быйты записаны их уже и сравнивать. Удобнее было бы, если сам эмулятор сохранял такой ром (в эмуляторе НЕС fceuxdsp такое есть). Но можно и програмку написать, чтобы нулевые биты карты заполняли соответствующие байты рома.

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #33 : 25 Май 2010, 13:18:58 »
Да, только вот карта указывает только на начала операций, такчто чтобы лишнее не занулить нужно ещё уметь определять длину операци :) ну эт легко ). Я сча думаю над другой вещью - нормальных watch-ах.

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1390
  • Пол: Мужской
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #34 : 25 Май 2010, 14:33:52 »
Я по правде говоря не понимаю какой толк в этих watch. И нормальные это какие?

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #35 : 25 Май 2010, 15:07:56 »
Объясняю. Мне легче всего на примерах Rock 'n' Roll Racing обьяснять.

Первый пример: мы незнаем что такое по адрессу 12345 (от фанаря сказал) но от этого зависит что происходит в данном участке кода. Ставим вотч по адрессу 12345 и смотрим (играя в игру эту), что там творится(как меняется значение), например если там всегда 0 и иногда проскальзывает 1 то это скорее всего какой-то флаг, например мёртв или нет игрок. Или если постоянно какоето значение, и иногда увеличивается, иногда уменьшается - так выгледит например поведение высоты на которой едет тачка в RRR или если значение меняется при движении камеры - то это камера ну и много примеров короче можно узнать о чём переменная. Но это можно узнать и смотря в RAM Dump, то есть это не самое важное применение.

Второй пример: (вот что значит НОРМАЛЬНЫЕ watch-и) начну из далека. Ты поставил бряк(Breakpoint) и от него начинаешь отлаживать, у тебя какие-то переменные изменяются, часто они раскиданы жутко по памяти (в смысле адреса у них жутко разные и в RAM Dump например не уследишь за всеми) и тогда ты можешь смотреть на все изменения переменных через Watch но это ещё не всё. Нормальные Watch это когда ты можешь смотреть не просто по адрессу, а можно следить за некоторым выражением(expression). например *((char *)12345)*2-*((char *)3210)*3 Так бы в C++ выгледело бы взять по адрессу 12345 байтовое знаковое значение, умножить на 2 и вычесть байтовое знаковое значение по адрессу 3210 умноженное на 3. (выражение (char*)12345 означает что число 12345 перевести в тип "адресс на биайтовое знаковое значение" после чего *p ,где p - указатель (адресс), означает "разименовать" (взять значение по адрессу). То есть ты не будишь как дурак сидеть и каждый шаг отладки на калькуляторе считать это выражение, а больше, ты сможешь в реальном времени (играя) смотреть сразу значение. Вот такие дела.

Третий пример: С нормальными watch удобно массивы например перебирать. ((char*)(12345)) - указатель, а все указатели в C++ можно использовать как массивы. Индекс указывается в квадратных скобках. То есть в Watch просто пишешь ((char *)(12345))[1] - второй элемент массива (индексы с нуля).

Собственно и хочу сделать чтобы можно было писать такие выражения. Только охото чтобы они быстро вычислялись поэтому надо использовать дерево для обратной польской нотации, а это очень лень ).

Можно ещё добавить список для переменных, чтобы не вводить 12345 каждый раз а определить допустим life=(char*)12345 и писать сразу life[10]. Хмм или чтобы постоянно (char *) не писать, дать к числу приписывать символ например 12345C - это пусть указатель на 12345 а не просто число. в C++ шестнадцатеричные числа обозначаются c ведущим 0x например 0x123E2C.

Поидее обычно в watch пишутся выражения на том же языке который отлаживают, (в С++ на С++, в Java на Java и т д...) но тут непонятно как можно в watch написать lea ($12345),a0... )))

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1390
  • Пол: Мужской
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #36 : 25 Май 2010, 15:25:28 »
Мне кажется наблюдения за динамично-изменяющейся памятью достаточно.
Согласен есть моменты, когда watch полезны, но мне это не кажется особо важным.

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #37 : 25 Май 2010, 16:19:03 »
считаю нужность того/иного в зависимости от того на сколько мне затраты времени сокращает, по моему опыту - на много.

Добавлено позже:
и если сделаешь такой watch то не проблема сделать breakpoint по условию.

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #38 : 26 Июль 2010, 19:09:31 »
Хорошая вещь.

А вот как можно ещё улучшить, смотрим:  скриншот из эмулятора NES'а FCEUX2.14a - они сделали такой же логгер, только неизв. для иды или чего.

И тут от себя добавлю надо сделать в карте (+data для трех типов .b .w .l ), т.е. получим области Code+data+неизв.
Плюс скрипт должен проводить исправление ошибок иды (когда неправильно определяет) - но тут главное, чтобы не вышло такое, когда данные являются  одновременно и кодом и данными , а также когда данные могут считаться как byte, а в другой раз как word(зависимости от ситуации).


Но полного дизасма таким способом неполучить даже если 99% игры пройти, потому что есть  'пустые' участки (вырезанные,неисользуемые и т.д.), 
А есть вообще нонсенс вроде дюны, куда 2резета запихнули - я раньше так думал, а сейчас изучая ром вижу - на самом деле все 2картирджа прям вместе с заголовком!
ROM:00029BB0                 dc.l RESERV3F
ROM:00029BB4                 dc.b 'SEGA GENESIS    (C)T-70 1994.APRDUNE - THE BATTLE FOR ARRAKIS  '
ROM:00029BB4                 dc.b '                 '
ROM:00029C04                 dc.b 'DUNE - THE BATTLE FOR ARRAKIS                   '
ROM:00029C34                 dc.b 'GM T-70246 -00'
ROM:00029C42 cheksum_clone:  dc.b 'êUJ               ' ; DATA XREF: ROM:0002C3F0r
ROM:00029C54                 dc.l 0
ROM:00029C58 rom_size_clone: dc.l $FFFFF             ; DATA XREF: ROM:0002C3ECr
ROM:00029C5C                 dc.l $FF0000
ROM:00029C60                 dc.l $FFFFFF
ROM:00029C64                 dc.b '                                                               '
ROM:00029C64                 dc.b ' U               '
ROM:00029CB4
ROM:00029CB4 ; =============== S U B R O U T I N E =======================================
ROM:00029CB4
ROM:00029CB4
ROM:00029CB4 RESET2:
ROM:00029CB4                 tst.l   (IO_CT1_CTRL_).l
ROM:00029CBA                 bne.s   loc_29CC2
Как минимум клон до $2DD5C. (включаю клон кода Z80).  Что они там накурились-  (я конечно много бреда видел вроде move.w ($12345678).l,d1,  или проверка tst.w (абс.адрес) -по нему $FFFF, надо проверить $FFFF там ли 0)  - я не понимаю, да и бол-во jsr/jmp адресов от клона ведет к реальному коду, поэтому запустить игру отсуда нельзя(было предположении о бета-копии начала).
Да еще и неиспользуемые дубликаты или вариации кода.

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1390
  • Пол: Мужской
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #39 : 26 Июль 2010, 19:20:34 »
А у меня на новом компьютере этот эмулятор стал работать с бешенной скоростью. И не помогает даже futo frame skip (на других версиях генса помогает)

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #40 : 26 Июль 2010, 19:29:35 »
я думаю надо придумать такой скрипт, который автодизасмит коды:
4e75 (и пытаться дизасмить что идет перед rts)  +
4eb900??????
4ef900??????
41F900??????
43F900??????
33FC????00??????
31FC????00??????
и подобные!

Добавлено позже:
А у меня на новом компьютере этот эмулятор стал работать с бешенной скоростью. И не помогает даже futo frame skip (на других версиях генса помогает)
именно сборка Шелла? или вообще именно этот gensmovie? может "режим совместимости" какой попробуй.

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #41 : 26 Июль 2010, 21:30:12 »
Дороботки эмуля сейчас (NOW) не планируются. Только если кто-то сильно хочет. Я пока не находил вещей в хаккинге где я не могу справится с набором который у меня в распоряжении. Может кто конечно парится как из сравнения двух MAP-ов узнать где именно в роме это различие. Так например я в Donald In Maui Mallard нашел чит на Debug Mode, который оказывается уже был описан GManiac-ом. Я нашел за пару минут, ещё хотел добавить супер удары, но там оказалось тонны обработчиков (мне кажется вплоть на каждый отдельный спрайт дональда - свой обработчик клавишь), и я нашел тот код который работает во время скоростного бега за ниндзю :) (опять же быстро). Короче эмулем я рад, VKNTrace использую только для VDP View и спрайтов. Может буду ещё с Z80 разбираться, может и его Debug сделаю.

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #42 : 05 Сентябрь 2010, 16:59:09 »
Итак новая версия, вся инфа http://elektropage.ru/index.php/2010-08-18-21-20-37/60-gens11ar57shellmod

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #43 : 06 Сентябрь 2010, 12:40:36 »
'поломали' главную фишку мода, а баги так и не пофиксили? (кривой порядок в ramdump, +не видно последней строчки, в dune через н-кое время в дебаг вообще не зайти все тормозить жутко начинает).
сам дебаг.. на read (когда нужно проверить область) в VKNTrace показывает откуда читает, а тут нет - и толку?

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #44 : 06 Сентябрь 2010, 14:40:51 »
'поломали' главную фишку мода
Какую? И почему в множественном числе. Такто я делал.

кривой порядок в ramdump
Это смотря с чьей точки зрения смотреть. В gens так память и выгледит. Хочешь сделать "правильный порядок" для этого есть тулза, которую я недавно выкладывал.

+не видно последней строчки
Посмотрим... честно я последнее время Ram Dump не смотрел))) мне Ram Watch хватает.

в dune через н-кое время в дебаг вообще не зайти все тормозить жутко начинает).
Посмотрим...

сам дебаг.. на read (когда нужно проверить область) в VKNTrace показывает откуда читает, а тут нет - и толку?
Сделаем, если руки дойдут. А так... мне например итак понятно где читают :). Меня больше напрягает что z80 банк не правильно показывает, но оказывается и в CPU->Debug z80 тоже неправильно. Надо это вот пофиксить.

Спс за баг репорт, только по подробнее хотелось бы ).

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #45 : 06 Сентябрь 2010, 21:13:27 »
Главную сам знаешь - дизасм. (а без фикса скрипта под новую версию пока нет смысла качать)

Вопрос в юзабельности.. в vkntrace нормально.. в ватчах нормально.. в стандартном дебаге тоже, а тут наоборот - для просмотра неюзабельно. (а дамп полный(или куском) можно и в vkntrace сделать, но там неудобно, что нельзя смотреть на лету).
тем более зачем делать тулзы отдельные, (и ненужные т.к. в winhex есть опция 16-byte swap)

Если точнее, думаю тормоза в dune cвязаны что там уж часто юзается стак (и видимо эта опция тупить начинает).  ram dump - самая последняя строчка - ее просто нет. [ FFFFF0 ]

Дебаг на read:пример я разбираю конфиг юнита (он весит 100байт(число от балды) выделяю область, чтобы найти код по которому читается. Но какой именно из байтов читается в этом эмуле узнать нельзя, а в VKNTrace с этим проблем нет.

Может это не столь и серьезный минус - но по функционалу он уступает, поэтому замены одним другим я не вижу (это ты писал, что тебе второй нужен только для VRAM) , а на деле так и так приходится юзать оба.   (Причем к твоему приоритет(vs.VKNTrace) по сути только из-за того, что экран не переключается ну и  + удобный листинг кода, а watch'и и в обычном gensmovie есть).


Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #46 : 06 Сентябрь 2010, 22:43:58 »
Главную сам знаешь - дизасм. (а без фикса скрипта под новую версию пока нет смысла качать)
Эээ ну раз скрипт сам не можешь поправить жди пока я поправлю :).

Вопрос в юзабельности.. в vkntrace нормально.. в ватчах нормально.. в стандартном дебаге тоже, а тут наоборот - для просмотра неюзабельно. (а дамп полный(или куском) можно и в vkntrace сделать, но там неудобно, что нельзя смотреть на лету).
Исправлю когда руки дойдут. Ещё за одно сделаю GoTo... (Jump to address)

тем более зачем делать тулзы отдельные, (и ненужные т.к. в winhex есть опция 16-byte swap)
Скока винхекс стоит?) Любим мы кряки, я его не юзаю, только изредка :). Предпочитаю фрии софт, хотя пиратский тоже юзаю ^_^. Всё решается сторонними прогами. В Notepad++ есть HEX редактор (плагин) незнаю он умеет так делать или нет... но в нём тоже можно неплохо поработать.

Если точнее, думаю тормоза в dune cвязаны что там уж часто юзается стак (и видимо эта опция тупить начинает).
Возможно. Сделаю опцию отключить/включить стэк или переделаю его вообще, поидее из-за этого не должен лагать.

ram dump - самая последняя строчка - ее просто нет. [ FFFFF0 ]
Ладно, посмотрим.

Дебаг на read:пример я разбираю конфиг юнита (он весит 100байт(число от балды) выделяю область, чтобы найти код по которому читается. Но какой именно из байтов читается в этом эмуле узнать нельзя, а в VKNTrace с этим проблем нет.
Этот адресс в конфигах юнитов тусит вроде в a2 )), такчто проблем нет ). Не спорю если адресация сложная то геморно... тоже руки доберутся сделаю.

Может это не столь и серьезный минус - но по функционалу он уступает, поэтому замены одним другим я не вижу (это ты писал, что тебе второй нужен только для VRAM) , а на деле так и так приходится юзать оба.   (Причем к твоему приоритет(vs.VKNTrace) по сути только из-за того, что экран не переключается ну и  + удобный листинг кода, а watch'и и в обычном gensmovie есть).
В моём акцент я ставил на call stack которым я постоянно пользуюсь... (все меню в RRR например, и прочее находится в два счёта с ним). И второй акцент действительно - убрать мелькотню, сделать step into, step over которыми я опятьже постоянно пользуюсь, что незнаю как у тебя, а у меня безбожно бажит в VKNTrace.
VRAM кстати посмотреть можно и в простом Gens Rerecording 11a, только вот с дампом непойму... вроде нету.

Кстати незнал что WinHex умеет делать 16 byte swap. А из CRAM делать палитру для YY-CHR тоже кто-то умеет?)

Добавлено позже:
Обновил скрипт, скоро может быть выложу новый эмуль

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #47 : 06 Сентябрь 2010, 22:48:51 »
Ещё за одно сделаю GoTo... (Jump to address)

Этот адресс в конфигах юнитов тусит вроде в a2 )), такчто проблем нет ). Не спорю если адресация сложная то геморно... тоже руки доберутся сделаю.

сделать step into, step over которыми я опятьже постоянно пользуюсь, что незнаю как у тебя, а у меня безбожно бажит в VKNTrace.

А из CRAM делать палитру для YY-CHR тоже кто-то умеет?)
jump? с полоской прокрутки - это лишнее. (в ram dump уж точно)

тогда уж  $1E(a2), $1C(a2) и т.д. - (считать каждый раз не айс)

step into, step over я ими не пользовался учитывая что да они глючили в VKN ( +там подсветки ветвления нет), поэтому особой привычки нет. (но например тем же step into нашел шаг на котором фремены не работали)
А так вообще в последнее время, я без дебага разбираю (лень лезть уточнять), просто по догадкам смотря на код + ватчи, а потом что не так правлю.

yy-chr странно что сам не читает сейвы генса (от других ж умеет), ну как вариант можешь добавить в свой эмуль эту фичу.

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #48 : 06 Сентябрь 2010, 23:05:10 »
Возможно. Сделаю опцию отключить/включить стэк или переделаю его вообще, поидее из-за этого не должен лагать.
Затестил оригинальную дюну - ничего не лагает на моём эмуле который я ещё не менял. Ты наверно опять свой уберхак тестил, он даже просто на эмуле лагает не говоря уже на отладке.

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

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #49 : 06 Сентябрь 2010, 23:16:34 »
Добавлено позже:
У меня утилита для VKNTrace может тоже где затупил ).
если для сейвов делать, то надо учитывать что палитра в сейв-файлах gens11  по-другому хранится. (во всех генсах и его модах сейвы совместимы, но если грузить сейв из re-recordinga в обычном, то палитра будет не та, а вот если наоборот -то нормально), да еще в сейве gens11 хранится частота ;) , поэтому я твой эмуль на 100мгц с сейва запускаю  ;)

Добавлено позже:
Затестил оригинальную дюну - ничего не лагает на моём эмуле который я ещё не менял. Ты наверно опять свой уберхак тестил, он даже просто на эмуле лагает не говоря уже на отладке.
нет, мне нужен был дизасм мап-файл оригинала, ну я запустил и решил минут 30 поиграть. в итоге минут 5 ждал пока он зайдет в этот дебаг, чтобы файл сохранить.
а так он со временем начинает залагивать.

Добавлено позже:
Затестил оригинальную дюну - ничего не лагает на моём эмуле который я ещё не менял. Ты наверно опять свой уберхак тестил, он даже просто на эмуле лагает не говоря уже на отладке.
ну там всего-то юнитов 70 юнитов было... а вот какие-тормоза в dune начинаются при 170-ти юнитах, - даже 100мгц не хватает.

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #50 : 07 Сентябрь 2010, 00:32:10 »
ну там всего-то юнитов 70 юнитов было... а вот какие-тормоза в dune начинаются при 170-ти юнитах, - даже 100мгц не хватает.
Поэтому порт круче эмуля.

Выложил новую версию.

Кстати внимание всем у кого в папке с моим гадящим эмулем появилось qweee.txt что-то на подобии того, удалите нахрен, и скачайте новый эмуль, он это не генерит, это была отладочная информация.

Добавлено позже:
Блин, опять косяк заметил, да емаё... исходник обновлять не буду ).

Добавлено позже:
вот, всё, вроде всё сделал.
http://elektropage.ru/index.php/2010-08-18-21-20-37/60-gens11a-r57shellmod

Добавлено позже:
Ti_, не сделал галочку для стэка ). неунывай :lol:.

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #51 : 08 Сентябрь 2010, 01:44:49 »
Было замечано что многие регистры неправильно отображаются в z80 дебаге, править очень лень, да и не понятно как... судя по описанию в исходнике эмуляции z80, многие регистры сидят в регистрах (тавтология но это так). Регистры z80 хронятся в регистрах x86 во время эмуляции, что затрудняет их выдёргивать во время неё, может удастся найти место в эмуляции где все регистры можно безопастно выдернуть и хотябы сохранить в памяти отладчика до следуйщей операции. Ещё не понятно почему иногда проскакивает через одну операцию отладчик, и иногда (может мне показалось) не работает StepOver на сall. Кроме этого не знал что rts (вроде так называется команда) тоже вызывает функцию.

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1390
  • Пол: Мужской
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #52 : 08 Сентябрь 2010, 12:07:56 »
Цитата: r57shell
А из CRAM делать палитру для YY-CHR тоже кто-то умеет?)
Я как-то писал такую утилиту, только палитра бралась прямо из сейва генса.(вроде обычного генса)

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #53 : 08 Сентябрь 2010, 12:37:48 »
Я как-то писал такую утилиту, только палитра бралась прямо из сейва генса.(вроде обычного генса)
Вот в том то и дело, даже не посмотришь где такие утилиты есть ))). Знал бы, не делал... хотя делов то... пару тело движений ).

Добавлено позже:
Может есть гденибудь дебаг z80 лучше моего? Т.е. нужна поддержка брэйкпоинтов, step into/step over и желательно call stack который я пока не сделал. Ах да, ещё регистры правильно чтобы отображались... я с этим попробую пошаманить... но наверно не сейчас.

Оффлайн iddqd

  • Пользователь
  • Сообщений: 5885
  • Пол: Мужской
  • murderforkill
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #54 : 26 Сентябрь 2010, 19:28:03 »
r57shell, спасибо. Добавь в новости на EmuCR.com.

Добавлено позже:
Ещё нигде не указана версия/ревизия

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #55 : 26 Сентябрь 2010, 21:45:28 »
Ты наверно незнаешь насколько я ленив... Новость могут наверно не только авторы добавлять? а?
Ревизия... ревизии и версии пока даже несчитались, не до того было.
Собственно этот эмуль уже выполнил цель которую перд ним я ставил - появится новая, может усовершенствую/устраню баги.
Устранение багов возможно при дружной просьбе... а так, пока не вижу смысла. Покажите мне тех кто z80 так заинтересован?).

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1390
  • Пол: Мужской
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #56 : 27 Сентябрь 2010, 04:59:44 »
Похоже дебаггер не показывает код, если код исполняется в RAM.
Кстати я не видел ни в одном эмуле сеги просмотр полной карты тайлов (как графики), было бы неплохо добавить.

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #57 : 27 Сентябрь 2010, 09:40:23 »
Похоже дебаггер не показывает код, если код исполняется в RAM.
M68k дебаггер? Если да, то возможно... раньше показывался, теперь из-за некоторых обстоятельств может быть не показывается.
z80 может выполнять код только в его 0000-4000 (непомню сколько нулей), в роме не умеет, ему M68k закидывает код.

Кстати я не видел ни в одном эмуле сеги просмотр полной карты тайлов (как графики), было бы неплохо добавить.
Хорошая идея, добавим, только кому оно надо ))). (это тоесть карты слоёв A,B, window я правильно понял?)

Добавлено позже:
Да, M68k недаёт... скрола нехватает )).

Оффлайн evgeny

  • Пользователь
  • Сообщений: 1390
  • Пол: Мужской
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #58 : 27 Сентябрь 2010, 09:55:32 »
Да, я про M68k дебаггер говорил.
Цитата: r57shell
Хорошая идея, добавим, только кому оно надо ))). (это тоесть карты слоёв A,B, window я правильно понял?)
Да, правильно понял, желательно еще, чтобы можно было слои эти как вместе просматривать, так т по отдельности. Незнаю как другим, но мне надо было  неоднакратно посмотреть тайловую карту за областью ортисовки+понять в каком положении скроллинг, визуально проще разобраться, чем высматривать и считать байты в видеопамяти.
В эмуляторе NES FCE ULTRA хорошо такое реализовано, там можно даже посмотреть номер используемого тайла направив на него курсор.
« Последнее редактирование: 27 Сентябрь 2010, 09:59:05 от evgeny »

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Gens Rerecording 11 Win32 r57shell mod
« Ответ #59 : 08 Декабрь 2010, 16:37:23 »
баг:
ram dump отображается нормально, но при создании файла дампа  в него добавляются 4 лишние символа  (первый  00000057: 0D ), файл весит 65540 и все сдвигается.