Автор Тема: [NES] Дебагер nes файлов  (Прочитано 4060 раз)

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

Оффлайн Ximial

  • Пользователь
  • Сообщений: 113
    • Просмотр профиля
[NES] Дебагер nes файлов
« : 05 Октябрь 2017, 11:53:24 »
Тема, такая. Сначало, я написал, NesAsm Compiller. Потом, подумал, что надо бы, сделать шаг на пути создания, собственного эмуля. И начал, естественно с простого, с Nes дебагера.
Тут и возникли вопросы. Правильно ли, он бы дебажил. Как по понятиям, отделить графические данные рома, от аудио данных, как то пропустить nes заголовок? Или хотябы как вообще выйти на фрагмент ROM Data, где по соображениям и был бы nes-asm - програмный фрагмент? Я хочу сказать может в nes файле, есть какая то примета, сразу указывающая, в каком именно бы его месте был бы asm код?

Оффлайн supremacy

  • Пользователь
  • Сообщений: 2256
  • Пол: Мужской
    • Просмотр профиля
[NES] Дебагер nes файлов
« Ответ #1 : 05 Октябрь 2017, 13:41:58 »
Я несколько удивлен, как без знания архитектуры можно писать дебагер или эмулятор.
Тебе нужен адрес вектора прерывания reset, который маппится по адресу $FFFC, а в nes файле лежит по адресу $400c, если в nes файле из постороннего только заголовок 16 байт. Это и будет точка входа.

Оффлайн Ximial

  • Пользователь
  • Сообщений: 113
    • Просмотр профиля
[NES] Дебагер nes файлов
« Ответ #2 : 06 Октябрь 2017, 07:14:11 »
Ну, без, знаний, это да. Это в принципе, по моему, не опровергало бы идею того, что я бы мог иметь бы право, собственно ручно написать програмный кусок nes файла. Но а как бы вам казалось, при моих попытках хаков ромов, у меня возникло ощущение, что в них кроме музыкальных встроеннных файлов, формата какого то, грфических данных, и програмных фрагментов, видимо присутствует, какая то неопределённая data. Т.е. это инфа, которая не соответствует ничему из выше изложенного.
Например, такая инфа, могла бы содержать, данные о конструкции левела. Короче говоря она по моему была, инфо-перенасыщенна, что бы быть асмом?

Оффлайн Griever

  • Пользователь
  • Сообщений: 77
    • Просмотр профиля
[NES] Дебагер nes файлов
« Ответ #3 : 06 Октябрь 2017, 08:05:56 »
Боже мой, у CaH4e3'а пена изо рта повалит, когда он увидит тему.

Оффлайн supremacy

  • Пользователь
  • Сообщений: 2256
  • Пол: Мужской
    • Просмотр профиля
[NES] Дебагер nes файлов
« Ответ #4 : 06 Октябрь 2017, 12:14:35 »
Чтобы тебе отделить данные от кода нужно всего лишь запустить data/code logger в эмуляторе fceux и пройти всю игру, при этом стараясь чтобы выполнились все ветки кода игры. После этого получишь карту рома http://www.fceux.com/web/help/fceux.html?CodeDataLogger.html

Оффлайн Ximial

  • Пользователь
  • Сообщений: 113
    • Просмотр профиля
[NES] Дебагер nes файлов
« Ответ #5 : 06 Октябрь 2017, 13:35:53 »
supremacy: Спасибо, за помощь. По правде сказать, даже больше чем ожидал.

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

Оффлайн Ximial

  • Пользователь
  • Сообщений: 113
    • Просмотр профиля
[NES] Дебагер nes файлов
« Ответ #6 : 06 Октябрь 2017, 13:51:31 »
Вобщем, вот мой ассемблер. Он расчитан, под ту же мнемонику команд, что используется и в дизассемблере 6502d-1.

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

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

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

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

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

Оффлайн Skay

  • Пользователь
  • Сообщений: 4115
  • Пол: Мужской
    • Просмотр профиля
[NES] Дебагер nes файлов
« Ответ #7 : 06 Октябрь 2017, 15:01:28 »
Ximial, вот только исходник оставлять, дело такое. ссылки на ресурсы, строки и т.д. часто выполняют оч полезную вещь, в плане подсказки что к чему.  :neznayu:
Также, мною была созданна программа - чистильщик. Она предназначалась, для чистинья
все же для очистки. Сам не оч грамотный, но такое даже мне режет глаза, сорь.

Оффлайн Ximial

  • Пользователь
  • Сообщений: 113
    • Просмотр профиля
[NES] Дебагер nes файлов
« Ответ #8 : 06 Октябрь 2017, 16:44:56 »
Основную часть исходника, можно глянуть. Но она оставлена мною на другом форуме.
А ссылки на чужой форум, не знаю приветствуются ли.

Добавлено позже:
Вроде, как то так, если получится:
http://www.cyberforum.ru/asm-beginners/thread1914841.html
« Последнее редактирование: 06 Октябрь 2017, 16:54:08 от Ximial »

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3588
    • Twitter
    • Просмотр профиля
[NES] Дебагер nes файлов
« Ответ #9 : 06 Октябрь 2017, 19:18:14 »
ОРУ

Оффлайн Skay

  • Пользователь
  • Сообщений: 4115
  • Пол: Мужской
    • Просмотр профиля
[NES] Дебагер nes файлов
« Ответ #10 : 06 Октябрь 2017, 20:39:00 »
CaH4e3, да ладно, с чего то начинать надо. Интересуется асмом, уже хоть что то. У меня на работе от этих трех букв шарахаются как от огня, святой водой разве что не поливают.
CaH4e3, был неправ.
« Последнее редактирование: 08 Октябрь 2017, 19:51:34 от Skay »

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3588
    • Twitter
    • Просмотр профиля
[NES] Дебагер nes файлов
« Ответ #11 : 06 Октябрь 2017, 21:33:24 »
у него все еще спереди

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24652
    • Просмотр профиля
[NES] Дебагер nes файлов
« Ответ #12 : 06 Октябрь 2017, 21:49:16 »
Боже мой, у CaH4e3'а пена изо рта повалит, когда он увидит тему.
Если бы только у CaH4e3'а. Не скрою: я - не программист. Но от слова "ассемблер" меня не коробит, некоторый опыт есть.
Но вот от подобных опусов мне тошно. Особенно когда автор русским языком владеет не изрядно :'(

Оффлайн MetalliC

  • Технический консультант
  • Сообщений: 9372
  • Пол: Мужской
  • Demul team / MAME developer
    • Просмотр профиля
[NES] Дебагер nes файлов
« Ответ #13 : 06 Октябрь 2017, 22:01:23 »
в этой теме всё прекрасно :D

ОРУ
аналогично

Оффлайн CaH4e3

  • Пользователь
  • Сообщений: 3588
    • Twitter
    • Просмотр профиля
[NES] Дебагер nes файлов
« Ответ #14 : 06 Октябрь 2017, 22:19:42 »
чего вы хотели в седьмом классе...

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

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24652
    • Просмотр профиля
[NES] Дебагер nes файлов
« Ответ #15 : 06 Октябрь 2017, 22:35:12 »
вот подрастет до девятого, потыкает в спектрум годик-два...
Не, он он пойдёт в физмат и закончит филфак. Главное - что б в армию не брали

Оффлайн Ximial

  • Пользователь
  • Сообщений: 113
    • Просмотр профиля
[NES] Дебагер nes файлов
« Ответ #16 : 07 Октябрь 2017, 08:50:02 »
Где то, вот сдесь, в сообщении, с вложенным архивом, я уже отвечал на тему, вроде той что началась, от сообщения « Ответ #9 : Вчера в 19:18:14 »:

http://www.cyberforum.ru/politics/thread1928064-page2.html
Я этого мнения вобщем то не именил.