Разработка и ромхакинг > Ромхакинг и программирование
[NES] Дебагер nes файлов
(1/1)
Ximial:
Тема, такая. Сначало, я написал, NesAsm Compiller. Потом, подумал, что надо бы, сделать шаг на пути создания, собственного эмуля. И начал, естественно с простого, с Nes дебагера.
Тут и возникли вопросы. Правильно ли, он бы дебажил. Как по понятиям, отделить графические данные рома, от аудио данных, как то пропустить nes заголовок? Или хотябы как вообще выйти на фрагмент ROM Data, где по соображениям и был бы nes-asm - програмный фрагмент? Я хочу сказать может в nes файле, есть какая то примета, сразу указывающая, в каком именно бы его месте был бы asm код?
supremacy:
Я несколько удивлен, как без знания архитектуры можно писать дебагер или эмулятор.
Тебе нужен адрес вектора прерывания reset, который маппится по адресу $FFFC, а в nes файле лежит по адресу $400c, если в nes файле из постороннего только заголовок 16 байт. Это и будет точка входа.
Ximial:
Ну, без, знаний, это да. Это в принципе, по моему, не опровергало бы идею того, что я бы мог иметь бы право, собственно ручно написать програмный кусок nes файла. Но а как бы вам казалось, при моих попытках хаков ромов, у меня возникло ощущение, что в них кроме музыкальных встроеннных файлов, формата какого то, грфических данных, и програмных фрагментов, видимо присутствует, какая то неопределённая data. Т.е. это инфа, которая не соответствует ничему из выше изложенного.
Например, такая инфа, могла бы содержать, данные о конструкции левела. Короче говоря она по моему была, инфо-перенасыщенна, что бы быть асмом?
Griever:
Боже мой, у CaH4e3'а пена изо рта повалит, когда он увидит тему.
supremacy:
Чтобы тебе отделить данные от кода нужно всего лишь запустить data/code logger в эмуляторе fceux и пройти всю игру, при этом стараясь чтобы выполнились все ветки кода игры. После этого получишь карту рома http://www.fceux.com/web/help/fceux.html?CodeDataLogger.html
Ximial:
supremacy: Спасибо, за помощь. По правде сказать, даже больше чем ожидал.

Добавлено позже:
Дебаггер, у меня, пока на стадии изготовления, его логика предпологалась бы по образцу дизассемблера 6502d-1. Т.е. после опознания первой команды, следующий за этой командой байт, всегда считался бы, первым байтом следующей команды. Незнаю правда насколько названный дизассембрер, вообще прав.
Ведь насколько я понял, он дизассемблирует с первого же байта рома.
Пока что есть, более менее рабочая версия моего Nes ассемблера, не знаю только как его затолкать на форум. Тут непонятно.
Ximial:
Вобщем, вот мой ассемблер. Он расчитан, под ту же мнемонику команд, что используется и в дизассемблере 6502d-1.

Надо создать, текстовой файл с ассемблер кодом, и открыть этот файл с помощью ассемблера.
В результате получится фрагмент компилированного кода, с именем output.cod.

Добавлено позже:
Коментариев, он не поддерживает, регистры малых латинских букв - тоже. Единственный способ, отделять команды друг от друга - является посредство переноса на другую строку, кода #13 #10. Максимальное число вместимых команд - 500. Так как версия тестовая.

Добавлено позже:
Сделанно, без оконного интерфейса, т.к. исходник изначально расчитывался, под компиль turbo pascal 7.

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

Также, мною была созданна программа - чистильщик. Она предназначалась, для чистинья, готового продукта дизассемблера 6502d-1, от лишнего мусора, и в итоге оставить от текстового файла, лиш то что, сошло бы за исходник для этого ассемблера. Это бы я и предпологал под ускоренным прогрессом дебага. Но потом меня одолели сомнения. В правильности исходного продукта.
Skay:
Ximial, вот только исходник оставлять, дело такое. ссылки на ресурсы, строки и т.д. часто выполняют оч полезную вещь, в плане подсказки что к чему.  :neznayu:

--- Цитата: Ximial от 06 Октябрь 2017, 13:51:31 ---Также, мною была созданна программа - чистильщик. Она предназначалась, для чистинья
--- Конец цитаты ---
все же для очистки. Сам не оч грамотный, но такое даже мне режет глаза, сорь.
Ximial:
Основную часть исходника, можно глянуть. Но она оставлена мною на другом форуме.
А ссылки на чужой форум, не знаю приветствуются ли.

Добавлено позже:
Вроде, как то так, если получится:
http://www.cyberforum.ru/asm-beginners/thread1914841.html
CaH4e3:
ОРУ
Skay:
CaH4e3, да ладно, с чего то начинать надо. Интересуется асмом, уже хоть что то. У меня на работе от этих трех букв шарахаются как от огня, святой водой разве что не поливают.
CaH4e3, был неправ.
CaH4e3:
у него все еще спереди
Rumata:

--- Цитата: Griever от 06 Октябрь 2017, 08:05:56 ---Боже мой, у CaH4e3'а пена изо рта повалит, когда он увидит тему.
--- Конец цитаты ---
Если бы только у CaH4e3'а. Не скрою: я - не программист. Но от слова "ассемблер" меня не коробит, некоторый опыт есть.
Но вот от подобных опусов мне тошно. Особенно когда автор русским языком владеет не изрядно :'(
MetalliC:
в этой теме всё прекрасно :D


--- Цитата: CaH4e3 от 06 Октябрь 2017, 19:18:14 ---ОРУ
--- Конец цитаты ---
аналогично
CaH4e3:
чего вы хотели в седьмом классе...

Добавлено позже:
вот подрастет до девятого, потыкает в спектрум годик-два... потом трубо паскакаль... потом сишка, винапи, сишарп, блокчейн, ФЕЙСБУК, МАКОСЬ!!!!! БОГ!!!!
Rumata:

--- Цитата: CaH4e3 от 06 Октябрь 2017, 22:19:42 ---вот подрастет до девятого, потыкает в спектрум годик-два...
--- Конец цитаты ---
Не, он он пойдёт в физмат и закончит филфак. Главное - что б в армию не брали
Ximial:
Где то, вот сдесь, в сообщении, с вложенным архивом, я уже отвечал на тему, вроде той что началась, от сообщения « Ответ #9 : Вчера в 19:18:14 »:

http://www.cyberforum.ru/politics/thread1928064-page2.html
Я этого мнения вобщем то не именил.
Навигация
Главная страница сообщений

Перейти к полной версии