М.Двач / 8bit

2 Кб, 311x62
Разработка для Dendy/NES/Famicom sage 5 окт 2016, 01:49 2438 В конец треда | Веб

Ни для кого не нужный, кроме меня, тред о разработке игр для Dendy/NES/Famicom.

Есть ли здесь разработчики, которые могут пояснить, что лучше приобрести в плане качества и приближения к работе оригинальной приставки: какой лучше клон Денди, или придется покупать Фамиком? (на аутентичную НЕС нет денег.)

Ответы243933524281

2 Кб, 250x224
2 5 окт 2016, 20:04 2 2439

>>2438 (OP)
Материальная часть - дело десятое. Как у тебя дела с программированием?

Ответы2441

3 5 окт 2016, 20:42 3 2441

>>2439
Хорошо.

> Материальная часть - дело десятое.
Но хочется тестировать в железе (чтобы выпустить игру в железе).

Ответы24422477

48 Кб, 455x426
4 5 окт 2016, 20:54 4 2442

>>2441
Ты хотя бы освой разработку и запусти на эмуляторе. И вообще, что именно ты собрался писать?

Ответы2443

Аноним 5 5 окт 2016, 21:01 5 2443

>>2442
Крутые игры.
Разработку освоил, на эмуляторе запускал.
Что, если хочу запилить собственный маппер? Его нужно прототипировать и делать это примерно параллельно с разработкой игры, чтобы понять, каким может быть маппер и как с ним интерфейсить

Ответы2446

6 5 окт 2016, 21:21 6 2446

>>2443
Вбрасывай тогда свое творчество сюда. И заодно расскажи: зачем тебе собственный маппер?

Ответы2449

7 5 окт 2016, 21:31 7 2449

>>2446
Чтобы удивить игроков спецэффектами / поддерживать кучу памяти, щас же технология развилась, можно больше всего за меньше денег

вбрасывать нибуду

Ответы2451

170 Кб, 1920x1080
8 5 окт 2016, 21:37 8 2451

>>2449
Звучит неплохо. А как у тебя вообще с электроникой? Плату картриджа развести сможешь?
И почему не хочешь вбрасывать? Собираешься сразу выпускать на физическом носителе?

Ответы2454

9 5 окт 2016, 22:11 9 2454

>>2451
В электронике еще плохо разбираюсь.

Не хочу вбрасывать, потому что секретная разработка.

Ответы2455

10 5 окт 2016, 22:27 10 2455

>>2454
Прямо настолько секретно?

Ответы2457

11 5 окт 2016, 22:45 11 2457

>>2455
Да.

Ответы2459

12 5 окт 2016, 23:09 12 2459

>>2457
Скрины тогда покажи что ли.

Ответы2464

13 5 окт 2016, 23:49 13 2464

>>2459
Нет, не в этом смысле, а просто секретная

Ответы2465

14 5 окт 2016, 23:52 14 2465

>>2464
Но что там на самом деле такого секретного? Поделился бы подробностями с аноном.

15 6 окт 2016, 15:59 15 2477

>>2441
Посоветуй, что почитать начинающему? Пока изучаю дебаггер FCEUX и ассемблер 6502.
До этого приходилось писать на асме под DOS и ZX Spectrum, но это было давно, в далеком детстве, сейчас многое уже забыл.

Хочу сделать хак Mario Bros с разными персонажами (в оригинале Луиджи - спрайт Марио с другой палитрой), реально ли это?

Ответы2489

85 Кб, 1024x768
16 6 окт 2016, 16:07 16 2479

Репост с загнивающего петухленда. Это больше про взлом, модификацию уже существующего кода.

[NES Ромхакинг] Первый урок. Введение

Многие из вас, желавшие поиграть в игры Денди, Сеги и других платформ, дабы поностальгировать и вспомнить "детство золотое", задавались вопросом - как воплотить это в жизнь, как можно поиграть в эти игры на мобильном телефоне/смартфоне/планшете/ПК и пр.? Попробовав самые разные эмуляторы консолей, вы выбираете один из них (или сразу несколько, как я) в качестве оптимального варианта на все случаи. И, естественно, начинаете воплощать мечту детства - играете во все игры, которые раньше были вам недоступны или неизвестны.
Но со временем просто играть вам, разумеется, надоедает, и поэтому вы начинаете задаваться вопросом: как можно видоизменить/улучшить/переделать эти игры? Ведь, как известно, и разработчики оригинальных игр, и пираты, не брезговали ромхакингом. Действительно, зачем тратить на разработку новую игру (читай - сиквел того же Мегамена) много денег и времени, когда можно использовать уже готовый движок, готовую музыку и звуковые эффекты, готовые спрайты, и переделать их с тем, чтобы выпустить сиквел как можно скорее. Удобно, не так ли? И геймеры довольны, и разрабы озолотились. ;) Увы, этим также пользовались и пираты, выпуская псевдо-сиквелы, годами обманывая геймеров Европы, Азии и стран СНГ... :(
... Но мы с вами не будем брать пример с пиратов и намеренно затирать копирайты разработчиков, верно? Если так - давайте же приступим к изучению ромхакинга! :)
Для первого урока по ромхакингу NES игр вам понадобится:
A) эмулятор, имеющий в себе кучу встроенных утилит - в данном случае это FCEUX 2.2.3. Его можно найти на сайте emu-russia.net . Если у вас более старая версия этого эмуля - ничего страшного, на ромхакинг это никак не повлияет. Просто в новой версии добавлены новые мапперы (включая CoolBoy).
Б) ром Super Mario Bros. (JU) [!]. Если его нет - можете скачать его на том же сайте. Или найти на сайте romfind.com
Итак, перейдём, непосредственно, к делу. Открываем Супер Марио с помощью указанного эмуля и нажимаем "старт". Для начала научимся менять количество жизней этого героя. Заходим в Tools->RAM Search. В появившемся окне выставляем Equal to - Specific Value - в форме рядом с этой фразой вбиваем цифру 2 и жмём на Search:

"Почему 2, если у героя на самом деле 3 жизни?" - спросите вы. Отвечаю: в некоторых играх есть такая особенность - когда отображаемая цифра или количество палочек-сердечек не совпадают с тем значением, что указано в ram. Например, когда вы ищете лайфбар, состоящий из 10 палочек/сердечек, и не находите - вам придётся выставить условие поиска Less than - Previous value, чтобы найти количество сердец по значению, которое уменьшается на определённое число каждый раз при получении урона. Конкретно в Супер Марио герою присваивают 2 жизни, хотя отображается 3. Из этого следует, что жизни у Марио уменьшаются вот так: 2, 1, 0 (то есть, ноль тоже используется как значение, и game over происходит после того, как значение "уходит в минус", а точнее - становится равно FF).
После того, как вы нажмёте на Search, вы получите:

85 Кб, 1024x768
16 6 окт 2016, 16:07 16 2479

Репост с загнивающего петухленда. Это больше про взлом, модификацию уже существующего кода.

[NES Ромхакинг] Первый урок. Введение

Многие из вас, желавшие поиграть в игры Денди, Сеги и других платформ, дабы поностальгировать и вспомнить "детство золотое", задавались вопросом - как воплотить это в жизнь, как можно поиграть в эти игры на мобильном телефоне/смартфоне/планшете/ПК и пр.? Попробовав самые разные эмуляторы консолей, вы выбираете один из них (или сразу несколько, как я) в качестве оптимального варианта на все случаи. И, естественно, начинаете воплощать мечту детства - играете во все игры, которые раньше были вам недоступны или неизвестны.
Но со временем просто играть вам, разумеется, надоедает, и поэтому вы начинаете задаваться вопросом: как можно видоизменить/улучшить/переделать эти игры? Ведь, как известно, и разработчики оригинальных игр, и пираты, не брезговали ромхакингом. Действительно, зачем тратить на разработку новую игру (читай - сиквел того же Мегамена) много денег и времени, когда можно использовать уже готовый движок, готовую музыку и звуковые эффекты, готовые спрайты, и переделать их с тем, чтобы выпустить сиквел как можно скорее. Удобно, не так ли? И геймеры довольны, и разрабы озолотились. ;) Увы, этим также пользовались и пираты, выпуская псевдо-сиквелы, годами обманывая геймеров Европы, Азии и стран СНГ... :(
... Но мы с вами не будем брать пример с пиратов и намеренно затирать копирайты разработчиков, верно? Если так - давайте же приступим к изучению ромхакинга! :)
Для первого урока по ромхакингу NES игр вам понадобится:
A) эмулятор, имеющий в себе кучу встроенных утилит - в данном случае это FCEUX 2.2.3. Его можно найти на сайте emu-russia.net . Если у вас более старая версия этого эмуля - ничего страшного, на ромхакинг это никак не повлияет. Просто в новой версии добавлены новые мапперы (включая CoolBoy).
Б) ром Super Mario Bros. (JU) [!]. Если его нет - можете скачать его на том же сайте. Или найти на сайте romfind.com
Итак, перейдём, непосредственно, к делу. Открываем Супер Марио с помощью указанного эмуля и нажимаем "старт". Для начала научимся менять количество жизней этого героя. Заходим в Tools->RAM Search. В появившемся окне выставляем Equal to - Specific Value - в форме рядом с этой фразой вбиваем цифру 2 и жмём на Search:

"Почему 2, если у героя на самом деле 3 жизни?" - спросите вы. Отвечаю: в некоторых играх есть такая особенность - когда отображаемая цифра или количество палочек-сердечек не совпадают с тем значением, что указано в ram. Например, когда вы ищете лайфбар, состоящий из 10 палочек/сердечек, и не находите - вам придётся выставить условие поиска Less than - Previous value, чтобы найти количество сердец по значению, которое уменьшается на определённое число каждый раз при получении урона. Конкретно в Супер Марио герою присваивают 2 жизни, хотя отображается 3. Из этого следует, что жизни у Марио уменьшаются вот так: 2, 1, 0 (то есть, ноль тоже используется как значение, и game over происходит после того, как значение "уходит в минус", а точнее - становится равно FF).
После того, как вы нажмёте на Search, вы получите:

Показать весь текст
Ответы2480

88 Кб, 1024x768
17 6 окт 2016, 16:09 17 2480

>>2479
Как видите, количество переменных резко уменьшилось. Нажимаем ещё раз, чтобы отсеять те, которые меняются в данный момент игры. Теперь их стало ещё меньше, верно? Чтобы знать наверняка, что изменится после потери жизни - выставляем условие поиска: Less than - Previous value. Это позволит выделить те переменные, что изменились после потери жизни. Теперь идём и напарываемся на гумбу. Смотрим внимательно на результаты в RAM Search. Даже без повторного поиска видим, что переменная 075A стала 1, была 2, а количество изменений равно 1.
Чтобы убедиться в этом - нажмите правой кнопкой мыши на этой переменной. Вы попадёте в HEX Editor - шестнадцатиричный редактор - где курсор будет стоять на этой переменной (как на этом скрине). И вводите, к примеру, 08 вместо текущего значения. После потери жизни их станет 8 (нумерацию жизней в этой игре я уже написал). Если произошло так, как я написал - значит, вы нашли значение жизней. Теперь осталось лишь ввести нужное вам значение в ROM и сохранить результат для дальнешего использования.
Для этого жмём на самом значении правой кнопкой мыши и выбираем Add Write Breakpoint For Address 075A:

Ответы2481

67 Кб, 1024x768
18 6 окт 2016, 16:10 18 2481

>>2480
Тут же откроется отладчик. Сворачивайте его. Если закроете - придётся залезать в Debug->Debugger и включать его заново. Жмём Reset (или Power, роли не играет). И тут же наш брейкпоинт срабатывает. В данный момент значение А переменной равно нулю, так что пропускаем это, нажав Run в отладчике. И в этот раз значение А переменной равна нулю, снова жмём Run. Теперь мы видим, что значение стало равно 02. Это - то. что мы искали:

Ответы2482

79 Кб, 1024x768
19 6 окт 2016, 16:11 19 2482

>>2481
К слову, при наведении на нужную нам строку в самом низу отладчика отображается местонахождение этого выражения в ROM. Запоминаем эту строку, заходим в HEX-editor, View-ROM File, и находим это место. Меняем 02 на какое хотите (желательно не выше 63 (62) - в хексе это 99). Да, если хотите сделать конкретное значение - вам понадобится Калькулятор, а точнее - инженерный Калькулятор. В поле вводите любое число в десятичной (DEC) системе (например, 20), переключаетесь в HEX - получаете 14. Именно HEX значения вам понадобятся в ромхакинге. :)
Второй способ: нам известно значение в RAM - тогда включаем HEX Editor и переходим к этому адресу. Для прокрутки я использую кнопки PgUp и PgDn. Можно также перейти напрямую по адресу, зайдя в хексе File->Goto address и вписав туда полученный адрес. Делаем, как на этом скриншоте:

Ответы2483

67 Кб, 1024x768
20 6 окт 2016, 16:13 20 2483

>>2482
Дальше - также меняете значение и жмёте Save ROM, чтобы сохранить изменения в текущем роме, или Save ROM As, чтобы сохранить изменения в новом роме, не меняя текущий:

Ответы2484

21 6 окт 2016, 16:16 21 2484

>>2483
Собственно, подобным образом можно не только накручивать жизни и сердечки в играх, но ещё и увеличить время, скорость персонажей и многое-многое другое. ;)
P. S.: также рекомендую вам скачать и установить утилиту Insectduel_s SMB Utility Rus.exe, с помощью которой вы сможете в Супер Марио задать количество жизней одним кликом, указать количество миров, изменить время, свойства уровней, превращения Боузера после смерти, переделать все уровни, задать их тип и погодные условия, а также переписать интро игры.
Для изменения заставки игры я рекомендую использовать smbte10b.zip. Правда, нужно учесть, что место на заставке не резиновое, за поля залезать нежелательно, иначе изменения не сохранятся.

Файл Insectduel_s SMB Utility Rus.exe:
http://spaces.ru/files/view/?Li=315023&Lii=39618922&Link_id=1673502&Lt=1&Read=39618922&Sn=29&name=lancuster&sid=::sid::

Файл smbte10b.zip:
http://spaces.ru/files/view/?Li=315023&Lii=56687485&Link_id=1546930&Lt=1&Read=56687485&Sn=10&name=lancuster&sid=::sid::

84 Кб, 1024x768
22 6 окт 2016, 16:17 22 2485

Первый урок вышел достаточно длинным, чтобы вписывать в него что-то ещё. Поэтому выкладываю дополнение отдельной темой - "Как сделать бесконечные жизни и пр.."
Если вы уже прочли предыдущую статью - значит, вы уже знаете, что нужно делать.
Открываете ром, заходите в Debug->Debugger, вводите в появившееся окно 075A, ставите галочку на Write и нажимаете ОК. Затем традиционно идёте на гумбу и сливаете жизнь. В этот момент сработает брейкпоинт:

Ответы2486

95 Кб, 1024x768
23 6 окт 2016, 16:18 23 2486

>>2485
То, что выделено на скриншоте (на что указывает стрелка сбоку) - это и есть код уменьшения жизни (сокр. англ. DEC - DECREASE | Уменьшение). Его необходимо затереть. Для этого переходим по указанному адресу в ROM к данным трём байтам и делаем вот это:

Ответы2487

24 6 окт 2016, 16:19 24 2487

>>2486
Теперь значение будет записываться в LDA, а не будет уменьшаться, как было изначально.
Можно было затереть все три байта вот так: EA EA EA. Но к Супер Марио это неприменимо, так как после потери жизни вы получите game over.
Так что - да, в некоторых играх тупое затирание байтов типа этого:

EA - NOP
EA - NOP
EA - NOP

не прокатит. В таких играх нужно заменять только один байт, но (!) на специальные значения. Вот так:

85 - A5
C6 - A5
CE - AD
8D - AD
9D - AD

Если будут выражения типа 99 ХХ ХХ - тогда, конечно, прокатит затирание байтов EA-шками.
... Ну, и, разумеется, делаем Save ROM или Save ROM As.

25 6 окт 2016, 16:55 25 2489

>>2477
Читать wiki.nesdev.com, я почти все там нашел.

>Хочу сделать хак Mario Bros с разными персонажами (в оригинале Луиджи - спрайт Марио с другой палитрой), реально ли это?
Да, но, если не менять маппер, придется выкинуть пару квадратиков графической информации, так как там пространство забито.

Ответы24922505

26 6 окт 2016, 17:37 26 2492

>>2489
Разве в SMB используется какой-то маппер?

Ответы24952505

602 Кб, 889x702
27 6 окт 2016, 18:10 27 2494

Ответы249727834358

28 6 окт 2016, 18:11 28 2495

>>2492
я имел в виду добавить

29 6 окт 2016, 18:21 29 2497

>>2494
Доигрался с кодом?

Ответы2501

sage 30 6 окт 2016, 22:11 30 2501

>>2497
просто няшная картинка

Ответы25032783

31 6 окт 2016, 22:23 31 2503

>>2501
Не очень. Такой эффект можно было получить прикоснувшись к картриджу.

29 Кб, 480x254
32 8 окт 2016, 01:07 32 2505

>>2492
Mario Bros, а не Super Mario Bros, братюнь. Игра, где двое братишек пытаются съебаться из замкнутого темного помещения через трубу, отвинтив вон ту хуйню.

>>2489
Думаю, можно выкинуть нахуй раков, оставив из врагов только купа черепах (их планирую перерисовать в зеленых слоников) и мух, которые мешают спать. За вики спасибо, уже нагуглил.

Ответы25072777

33 8 окт 2016, 11:13 33 2507

>>2505
Было бы убергодно, конечно, реализовать зеленого слоника в Марио. Но вместо того чтобы что-то вырезать, можешь покопаться в улучшенных версиях, где есть маппер.

2 Кб, 256x240
34 8 окт 2016, 15:52 34 2508

Mario Bros. Classic. Выходил в Европе, более точно повторяет аркадный оригинал. Есть катсцены, и можно менять направление в прыжке.
https://youtu.be/zll16wdrnsM
Kaettekita Mario Bros.
Версия для FDS. Добавлена реклама и новый игровой режим, плюс, можно сохраняться.
https://youtu.be/SsjPIgE-smI

35 1 ноя 2016, 04:40 35 2533

Братишки, возможно вам это пригодится. Полная система команд 8-битного процессора MOS 6502:
http://www.emuverse.ru/wiki/MOS_Technology_6502/Система_команд

В NES'овском процессоре нет команд для работы с двоично-десятичными числами (BCD), т.к. в играх они не нужны.

4 Кб, 512x448
36 1 ноя 2016, 04:48 36 2534

Кстати, спрайт слоника можно взять из игры CJ's Elephant Antics

37 24 окт 2017, 12:48 37 2777

>>2505
Годнота

38 29 окт 2017, 14:04 38 2783

>>2494
>>2501
анон я её использую в качестве бекграунда для своего рисунка если ты не против

39 13 мар 2018, 12:03 39 3116

бамп!

40 9 мая 2018, 17:33 40 3171

бамп

41 10 мая 2018, 14:19 41 3172

бамп

42 17 июня 2018, 19:12 42 3246

О, какой интересный тред. Я тоже хочу вкатиться в несдев, пробовал курить техдоки, пока что ничего толком не понятно. С ассемблером, думаю, проблем не будет (владею несколькими).

43 4 сен 2018, 15:51 43 3347

Я думаю стоит приобретать Dendy Classic Junior 2

44 11 сен 2018, 16:24 44 3352

>>2438 (OP)
NES разработчик в треде, задавайте ответы. Погляжу за тредом некоторое время, похуй что доска мёртвая.

Ответы34543455

45 18 ноя 2018, 23:56 45 3451

Могу помочь, задавайте вопросы, помогу вкатиться.

Ответы3454

46 20 ноя 2018, 00:51 46 3454

>>3352
>>3451
На чем пишете? Асм, сишка? Какой компилятор?

Ответы34553456

47 20 ноя 2018, 01:43 47 3455

>>3454

Возможно то и другое, как по отдельности так и совмещение. Си (сс65) + neslib + famitone2 - очень хоршая база, чтобы вкатиться, освоиться и развиваться. Этих сей вполне хватает на игру уровня супермарио, ну и прототипировать на сях удобно.
Сам пока что пишу на сс65, постепенно углубляясь под капот в ассемблер.

>>3352

48 20 ноя 2018, 22:19 48 3456

>>3454
ассемблер на nesasm

Какой в этом смысл, спросите себя, надо ли вам это. Игроделание уровня, хотел в детстве сделать игру.

Звуковые движки пижжу с других игр.

Ответы3459

49 20 ноя 2018, 23:21 49 3459

>>3456
>Какой в этом смысл, спросите себя

На физических носителях игры неплохо продаются. И для NES и для Сеги и для некоторых других консолях.

>>3456
>пижжу с других игр

Зачем, если есть Famitracker + либа Famitone? Подойдет и для твоего несасма.

Ответы34603461

50 20 ноя 2018, 23:22 50 3460

>>3459
> консолей
фикс

51 21 ноя 2018, 00:02 51 3461

>>3459
Я не музыкант, и мне лень уже ковыряться в этом.
Что я буду музыку писать? нет. Звуки придумывать? нет.
Проще взять готовое.

Для серъёзных целей нужно разделять задачи, чтоб задачей занимался профессионал своего дела. Для игры типа Марио, звуки лучше взять из Марио.

52 21 ноя 2018, 00:23 52 3462

Нужно написать какую нибудь инструкцию, как выводить графен, опрашивать джойстик, загружать уровень, и двигать объекты. Пусть погромируют, кому не лень. Это же очень простое железо, главное понять.

Я вобще руководствовался книжками:
GameDevNES.chm
Архитектура и программирование Dendy.doc
Язык Ассемблера для персонального компьютера ЭПЛ У.Моррер 1987.djvu

Через месяц, после возникновения желания разобраться в программировании под NES, уже был была сделана загрузка одноэкранного уровня, со спрайтом, который даже умел прыгать и взаимодействовать с окружением. Потом я всё забросил.

Сейчас решил доделать начатое.

Не рекомендую ковырять чужие исходники, кто не умеет программировать, потому что желание отпадёт этим заниматься. Я до сих пор в ахуе от чужих исходников, нихуя не понимаю, что там хотели сказать такой кашей.

Ответы3464

53 21 ноя 2018, 01:23 53 3463

Компилируем на 6502 онлайн:

http://skilldrick.github.io/easy6502/

Просто охуительный туториал для делающих в 6502 асм.

54 21 ноя 2018, 01:37 54 3464

>>3462

Если пишем на Си, то все инструкции есть в neslib.h. Там весь базис собран в виде библиотеки, нужно только настроить ROM под нужный маппер и вперёд.
С асмами всякими знаком, но 6502 кажется уберущербным с его аккумулятором и двумя индексными регистрами. Новичкам (особенно тем, кто вообще не знает никакого асма) вкатываться в такой асм будет довольно болезненно. Но ничего нет невозможного, конечно.

55 22 ноя 2018, 00:19 55 3468

Вот набросал в nesasm, спрайт по экрану движется, вредакторе поправить вс и откомпилировать, графен цеплять не нужно.

.inesprg 2;32k PRG 1=16kb
.ineschr 0;1;4;8 k
.inesmir 0;0 - H, 1 - V
.inesmap 0
;
.bank 0
.org$8000
;
system_start:;инициализация
sei
cld;
jsr video_init_0

ldx #$FF ;stack init
txs
jsr memory
jsr video_memory
jsr palette_load

lda #$00;записать мусор для спрайта
sta $2006
lda #$00
sta $2006
lda #$FF
sta $2007

jsr video_init_1
game: ;цикл
jsr sprite_

jsr delay_wait
jsr delay

lda #$02;загрузка спрайтов из $0200
sta $4014

lda #$00;сбросить скроллинг
sta $2005
sta $2005
jmp game
;*
sprite_:
inc <$00
inc <$01
lda <$00
sta $0200
lda #$00
sta $0201
lda #%00000000
sta $0202
lda <$01
sta $0203
rts
;***
memory: ;чистим мемори
ldx #$00
memory_:
lda #$00
sta <$00, X
sta $0200,X
sta $0300,X
sta $0400,X
sta $0500,X
sta $0600,X
sta $0700,X
inx
bne memory_
rts
;***
delay:
lda $2002
bpl delay
rts

delay_wait:
lda $2002
bmi delay_wait
rts
;***
video_init_1: ;увеличение адреса +1 по горизонтали
lda #%00101100
sta $2000
lda #%00011000
sta $2001
rts
video_init_0:;видео
lda #%00000000
sta $2000
lda #%00000000
sta $2001
rts
;***
palette_load:
lda #$3F;палитра BG
sta $2006
lda #$00
sta $2006

ldx #$00
ldy #$00
palette_load_bg:
lda pal, X
sta $2007
inx
iny
cpy #$10
bne palette_load_bg
;rts
;***
lda #$3F;палитра sprite
sta $2006
lda #$10
sta $2006

ldx #$00
ldy #$10
palette_load_spr:
lda pal, X
sta $2007
inx
iny
cpy #$20
bne palette_load_spr
rts
;***
video_memory:;чистка видео
lda #$20
sta $2006
lda #$00
sta $2006

ldx #$00
ldy #$04
lda #$01
video_memory_:
sta $2007
inx
bne video_memory_
dey
bne video_memory_
rts
;***
pal:
.db $22,$0F,$31,$00
.db $22,$38,$27,$07
.db $22,$36,$17,$0F
.db $22,$0F,$36,$27
;***
.org$9000
.bank 1
.org$A000
.org$B000
.bank 2
.org$C000
.org$D000
.bank 3
.org$E000
.org$F000

.org$FFFA
.dw 0;(NMI_Routine)
.dw system_start;(Reset_Routine)
.dw 0;(IRQ_Routine)

55 22 ноя 2018, 00:19 55 3468

Вот набросал в nesasm, спрайт по экрану движется, вредакторе поправить вс и откомпилировать, графен цеплять не нужно.

.inesprg 2;32k PRG 1=16kb
.ineschr 0;1;4;8 k
.inesmir 0;0 - H, 1 - V
.inesmap 0
;
.bank 0
.org$8000
;
system_start:;инициализация
sei
cld;
jsr video_init_0

ldx #$FF ;stack init
txs
jsr memory
jsr video_memory
jsr palette_load

lda #$00;записать мусор для спрайта
sta $2006
lda #$00
sta $2006
lda #$FF
sta $2007

jsr video_init_1
game: ;цикл
jsr sprite_

jsr delay_wait
jsr delay

lda #$02;загрузка спрайтов из $0200
sta $4014

lda #$00;сбросить скроллинг
sta $2005
sta $2005
jmp game
;*
sprite_:
inc <$00
inc <$01
lda <$00
sta $0200
lda #$00
sta $0201
lda #%00000000
sta $0202
lda <$01
sta $0203
rts
;***
memory: ;чистим мемори
ldx #$00
memory_:
lda #$00
sta <$00, X
sta $0200,X
sta $0300,X
sta $0400,X
sta $0500,X
sta $0600,X
sta $0700,X
inx
bne memory_
rts
;***
delay:
lda $2002
bpl delay
rts

delay_wait:
lda $2002
bmi delay_wait
rts
;***
video_init_1: ;увеличение адреса +1 по горизонтали
lda #%00101100
sta $2000
lda #%00011000
sta $2001
rts
video_init_0:;видео
lda #%00000000
sta $2000
lda #%00000000
sta $2001
rts
;***
palette_load:
lda #$3F;палитра BG
sta $2006
lda #$00
sta $2006

ldx #$00
ldy #$00
palette_load_bg:
lda pal, X
sta $2007
inx
iny
cpy #$10
bne palette_load_bg
;rts
;***
lda #$3F;палитра sprite
sta $2006
lda #$10
sta $2006

ldx #$00
ldy #$10
palette_load_spr:
lda pal, X
sta $2007
inx
iny
cpy #$20
bne palette_load_spr
rts
;***
video_memory:;чистка видео
lda #$20
sta $2006
lda #$00
sta $2006

ldx #$00
ldy #$04
lda #$01
video_memory_:
sta $2007
inx
bne video_memory_
dey
bne video_memory_
rts
;***
pal:
.db $22,$0F,$31,$00
.db $22,$38,$27,$07
.db $22,$36,$17,$0F
.db $22,$0F,$36,$27
;***
.org$9000
.bank 1
.org$A000
.org$B000
.bank 2
.org$C000
.org$D000
.bank 3
.org$E000
.org$F000

.org$FFFA
.dw 0;(NMI_Routine)
.dw system_start;(Reset_Routine)
.dw 0;(IRQ_Routine)

Показать весь текст

56 22 ноя 2018, 00:20 56 3469

\t это пробелы

не годится сюда копировать.

5 Кб, 120x120
57 25 мар 2020, 23:33 57 3764

Разработка для Dend

58 6 авг 2021, 13:19 58 4281

>>2438 (OP)
Не пиши ничего под эмулятор.

> ... чтобы издавать игру в железе...
Это будет коммерческий провал, ты ведь понимаешь? Никто не будет покупать эти игры в "железе"/ физ.носителе.
Тебе надо всеми силами пытаться залезть со всем этим своим творчеством на плеймаркет.

Эмуляторы и всякие официальные отладчики для nes игр, я бы тоже не советовал задрачивать. Делай всё под исполняемый файл. (APK, EXE..)
Напиши движок для графики и скриптов.
Начни всё абсолютно с нуля, но обязательно сохранив исконные NES ограничения!! . Чтобы сохранить весь колорит игр той эпохи. Что я именно имею ввиду:
- Звук 8 битный.
- Ограничения в графике проработай. Чтобы тайлы были с такой же палитровой спецификой. (Не лепи все 65536 цветов туда.

Пустой движок напиши хотя ты для игр. Проработай горизонтальный и вертикальный scroll . Анимацию сменой тайлов. Проработай клавиши/жесты управления.
Должно получиться пустое, но логически законченное приложение, весом не более 150-200 КБ (я предполагаю).

Это по идее будет некий каркас универсальный, который уже можно будет потом наполнять контентом (Тайлы, мелодии) и фантазией (скрипты).

Замути какой-нибудь свой простенький скриптовый яз. Типо

? A+2=10 !
>>
A++
<<

(пример)

Когда будешь движок писать, не тули все в один exe. Делай грамотно, раскидывай все uses'ы в разные DLL. Или не uses'ы, а include если на сишной среде работаешь.
Всё в разных библиотеках реализуй. Чтобы можно было с лёгкостью под андроид портировать в дальнейшем. (Собственно это наверное и есть на сегодняшний день основная целевая платформа)

В картриджи вшивать (или же в NES формат) сегодня, это утопия полнейшая.
Делай для современных платформ. Главное соблюдай техническую и визуальную стилистику игр. И найдется на них свой фанат.

У меня были идеи подобные пару лет назад. И даже царапал там что-то помню на Delphi. Я на DirectX графику почему-то ударение ставил тогда. Это и скорость, и кроссплатформенность как никак.

58 6 авг 2021, 13:19 58 4281

>>2438 (OP)
Не пиши ничего под эмулятор.

> ... чтобы издавать игру в железе...
Это будет коммерческий провал, ты ведь понимаешь? Никто не будет покупать эти игры в "железе"/ физ.носителе.
Тебе надо всеми силами пытаться залезть со всем этим своим творчеством на плеймаркет.

Эмуляторы и всякие официальные отладчики для nes игр, я бы тоже не советовал задрачивать. Делай всё под исполняемый файл. (APK, EXE..)
Напиши движок для графики и скриптов.
Начни всё абсолютно с нуля, но обязательно сохранив исконные NES ограничения!! . Чтобы сохранить весь колорит игр той эпохи. Что я именно имею ввиду:
- Звук 8 битный.
- Ограничения в графике проработай. Чтобы тайлы были с такой же палитровой спецификой. (Не лепи все 65536 цветов туда.

Пустой движок напиши хотя ты для игр. Проработай горизонтальный и вертикальный scroll . Анимацию сменой тайлов. Проработай клавиши/жесты управления.
Должно получиться пустое, но логически законченное приложение, весом не более 150-200 КБ (я предполагаю).

Это по идее будет некий каркас универсальный, который уже можно будет потом наполнять контентом (Тайлы, мелодии) и фантазией (скрипты).

Замути какой-нибудь свой простенький скриптовый яз. Типо

? A+2=10 !
>>
A++
<<

(пример)

Когда будешь движок писать, не тули все в один exe. Делай грамотно, раскидывай все uses'ы в разные DLL. Или не uses'ы, а include если на сишной среде работаешь.
Всё в разных библиотеках реализуй. Чтобы можно было с лёгкостью под андроид портировать в дальнейшем. (Собственно это наверное и есть на сегодняшний день основная целевая платформа)

В картриджи вшивать (или же в NES формат) сегодня, это утопия полнейшая.
Делай для современных платформ. Главное соблюдай техническую и визуальную стилистику игр. И найдется на них свой фанат.

У меня были идеи подобные пару лет назад. И даже царапал там что-то помню на Delphi. Я на DirectX графику почему-то ударение ставил тогда. Это и скорость, и кроссплатформенность как никак.

Показать весь текст
Ответы4286

59 6 авг 2021, 13:22 59 4282

Жаль конечно, что тред мёртвый. Такую простыню высрал.
Но ладно, всё равно не сожалею

564 Кб, 256x256
60 15 авг 2021, 13:29 60 4285

На самом деле спасибо.
Хотелось бы заняться разработкой под денди.

Ответы4286

61 19 авг 2021, 00:24 61 4286

>>4281
>Никто не будет покупать эти игры в "железе"/ физ.носителе.
Да ты что?
Как раз таки на реальных картриджах NES, Sega и прочую ретропродукцию и покупают.
Только не в этой стране.

>>4285
Задавай ответы, если не забуду заглянуть в этот мертвый тред.

Мимо ретродевелопер, около десятка законченных проектов для ретроплатформ.

Ответы4288

62 19 авг 2021, 17:30 62 4288

>>4286
> Мимо ретродевелопер, около десятка законченных проектов для ретроплатформ.
Поделись своими творениями. Скрины там, или ссылки на игры дай

Ответы4289

63 19 авг 2021, 19:21 63 4289

>>4288
На анонимной имиджборде для девочек? Не очень хочется. А вот добрых советов начинающим могу дать всяких.

64 4 июня 2022, 18:04 64 4358

>>2494
Пиздец... От нее повеяло какой-то грустью.

Обновить тред
« /8/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion