PDA

Просмотр полной версии : Программирование NES



Tronix
07.07.2015, 07:52
Привет,

Решил немного побаловаться, вопросы пока такие:

1) С чего лучше начать, с ассемблера или с Си? Думаю, что лучше с ассемблера, но синтаксис мне не знаком совершенно (я только с i8088+ дружу). Спектрумистам наверное проще, ибо всякие lda, inx из z80, а я ни в зуб ногой что-это вообще без гугля.

2) Как рисовать точки (линии, круги, эллипсы) в произвольных местах экрана? Я думаю надо менять в реал-тайме CHR, из которых потом выводятся на экран спрайты. Какой маппер для этого использовать? Нужно же что бы был CHR-RAM, а не CHR-ROM, так?

vfiuchcikicshuusrch
07.07.2015, 07:57
ты программировать будешь с эмулятором наверное ?
просто у тебя вопросы странные :)
маппер сам себе выбери)) когда выберешь, его нужно будет изучить.
потом понять как цпу и ппу должны с ним работать. ну и вперед.

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

HardWareMan
07.07.2015, 09:10
Никакого С! 6502 настолько слаб, что всякие ЯВУ делают только хуже. С другой стороны, он так же настолько прост, что полностью укладывается в голове и поэтому программировать на нем достаточно просто. Для начала берешь доку 76 года (http://hwm.us.to/ftp/KIM-1_PM.rar) и раскуриваешь основы. Дальше - раскуриваешь окружение 6502 в NES/Famicom/Dendy. И да, разборка простой игры будет лучше на стадии изучения.

Чтобы рисовать где и как хочешь достаточно в картридж поставить VRAM необходимого объему. Тем не менее, там есть и ограничения, на тот же цвет, например как у спектрума.

vfiuchcikicshuusrch
07.07.2015, 09:16
76 год :v2_eek:
я пропустил много интересного... -.-

DenisGrachev
08.07.2015, 16:40
Привет,
Решил немного побаловаться, вопросы пока такие:
1) С чего лучше начать, с ассемблера или с Си? Думаю, что лучше с ассемблера, но синтаксис мне не знаком совершенно (я только с i8088+ дружу). Спектрумистам наверное проще, ибо всякие lda, inx из z80, а я ни в зуб ногой что-это вообще без гугля.


Лучше с Си. Ассемблер с двумя регистрами и аккумулятором это жесть, чуть лучше чем счёты.



2) Как рисовать точки (линии, круги, эллипсы) в произвольных местах экрана? Я думаю надо менять в реал-тайме CHR, из которых потом выводятся на экран спрайты. Какой маппер для этого использовать? Нужно же что бы был CHR-RAM, а не CHR-ROM, так?

Очень плохая мысль. Это как асфальт великом закатывать. Думай на уровне тайлов и спрайтов, а не линий, элипсов и кругов.

Очень советую уроки от Shiru. Хорошие примеры с комментариями.
https://shiru.untergrund.net/articles/programming_nes_games_in_c.htm

rw6hrm
08.07.2015, 17:41
Никакого С! 6502 настолько слаб,

Ой, ну не надо так сразу человека отпугивать от великого и няшного 6502 :v2_dizzy_heart: , просто сначала грузим себе в писюк кросс-компилятор сс65, http://www.cc65.org/ , пишем всяческие различные программки и наслаждаемся жистью... Будет то же самое, что и для ардуины (прости, Гспди) скетчи писать...

Aprisobal
08.07.2015, 21:21
Ой, ну не надо так сразу человека отпугивать от великого и няшного 6502 :v2_dizzy_heart: , просто сначала грузим себе в писюк кросс-компилятор сс65, http://www.cc65.org/ , пишем всяческие различные программки и наслаждаемся жистью... Будет то же самое, что и для ардуины (прости, Гспди) скетчи писать... Согласен, CC65 генерирует вполне годный код, по которому можно научиться и 6502 ассемблеру. Затем переписывать части кода через asm(...) и в конце концов получится полностью перейти на рукописный машинный код.