Это хорошо, что ты доделываешь дебуггер, но можно ведь обратить внимание на мелкие косяки вроде квадратов в конце строк (там для переноса строки, наверно, пишется 0A, а не 0D0A), нерабочие кнопки закрытия окон (крестик в углу окна) и т.д. Окна с командами и всей памятью просто копируют обычный чёрный дебуггер, так? Можно во вьюере памяти сделать строки по 16 байт, а то эти 12 байт уже достали... Ладно, это мелочи.
Мне показалось, что брекпоинт не срабатывает, оказалось, это окошко смотрит на регистр букв: например, вводишь fff9d0, а оно потом выдаёт 7EE7990.
...Насколько я понимаю, там ставится что-то вроде Hardware Breakpoint на ячейку памяти самого Генса, за счёт этого Генс не тормозит при проверке бряка. И поэтому бряк срабатвыает уже после обращения к ячейке. Хотя я могу ошибаться... Если сделать так, чтобы эффективный адреса вычислялся до выполнения команды, наверно, появятся тормоза. Да и код менять надо.
Я скомпилил Gens 2.10 от Никодима, проблема была в маленькой заморочке.
Во-первых, Starscream не есть эмулятор 68k в чистом виде. Батник в исходнике запускает полученный из Старскрима экзешник, который генерирует асмовый файл на 2 метра для насма - это и есть эмулятор. Почему VS ругался на отстутствующие main68k и sub68k.obj - оказалось, батники чуть кривые, и obj не появлялись в нужной папке. А когда я дал ему obj, полученные из сишного файла, ругался потому, что это не сам эмулятор (см. выше).
Поэтому вот инструкция, если кому интересно:
1. Билдим оба проекта star.dsw в папке Starscream.
2. Правим оба батника: в 5-й строчке надо добавить в начале "..\..\..", получится:
..\..\..\nasm\nasmw -f win32 temp.asm -o ..\..\..\gens\release\main68k.obj
и
..\..\..\nasm\nasmw -f win32 temp.asm -o ..\..\..\gens\release\sub68k.obj
Запускаем батники.
3. Если nasmw не добавлен в VS, надо Tools -> Options -> Directories, справа выбрать Executable Files и добавить путь к nasmw.exe
4. Открыть главный проект gens.dsw, правый клик на папке ASM Sources, Settings, в окне Commands пишем
nasmw -i $(InputDir) $(InputDir)\$(InputName).asm -f win32 -o $(OutDir)\$(InputName).obj
, в Outputs:
$(OutDir)\$(InputName).obj
На вкладке General ставим верхнюю галочку, а для файлов *.inc из папки ASM Sources ставим галочку "Exclude file from build".
5. Билдим генс.
ЯковлевВиктор, сможешь добавить Никодимовский поиск читов в ГенсТрейсер и вернуть Tab для хардрезета системы?
Добавлено позже:Зато вот VS 2003 спотыкается на zlib.lib