Сын понемногу собирает себе местечко
Пост на ВК Твоя коллекция
👆 Публикуй свою коллекцию! Подключайся к сообществу и хвастай, чем новым пополнился ;)
Пост на ВК Твоя коллекция
👆 Публикуй свою коллекцию! Подключайся к сообществу и хвастай, чем новым пополнился ;)
Ая-яй, в комментариях автора немного пожурили за отсутствие видео геймплея и цену картриджа. Игра на самом деле действительно пока напоминает демку, но потенциал к прикольному хоумбрю у нее есть. Касательно цены карика - это ж все таки коллекционная штучка, однако подобные вещи должны быть правильно оформлены - в своем кастом корпусе, с обложкой и уникальным номером экземпляра. По крайней мере так это вижу я.
Я тоже заказал плату под ROM, буду писать свою игрушку ради фана... Ну и конечно напишу об этом подробную статью, как вы и любите :)
Всем привет) Обновы которые я покупал за прошедшие 2 месяца. Решил по одной не выкладывать, а сразу пачкой большой скинуть)
NFS Carbon в рукаве и NFS Shift special edition давно такой хотел. Condemned 2 поиграю обязательно так как прошел первую часть. Warhammer коллекционное издание в пленке давно висело долго на авито, но никто почему то не брал, если учесть что предложении почти нету. Мортал шелл состояние отличное и давно поиграть хотел. Бласфимус купил, так как привлекла своим дизайном, надо еще вторую докупить) МорфХ наша отечественная игра, для хбох 360 она носит такое название, а на российском рынке называется Симбионт. Арми оф ту 40 дэйс отличная игра на двоих + закрыл сэт по ним). Всем добра))
Пост на ВК Коллекционеры видеоигр
👆 Публикуй свою коллекцию! Подключайся к сообществу и хвастай, чем новым пополнился ;)
PS3 дисков немного подсобрал)
Пост на ВК Коллекционеры видеоигр
👆 Публикуй свою коллекцию! Подключайся к сообществу и хвастай, чем новым пополнился ;)
Вступление
Давно, когда я еще учился в школе, зимним вечером, пройдя очередной уровень марио я загорелся идеей - сделать свой платформер для игровой приставки.
Примерно через полгода у меня появился персональный компьютер с операционной системой MS-DOS и средой программирования QBasic:
Ну вот! Подумал я, настал мой час и сел писать игру в надежде что как-то придумаю как запихнуть эту игру потом в приставку денди.
Наивно, но тогда не было интернета и узнать, как вообще создавать игры и заливать их на картридж было довольно сложно.
Понятное дело, после некоторых попыток у меня толком ничего не вышло.
Да, у меня получилось сделать какой-то фон, персонажа и даже заставить его двигаться и на этом разработка игры была закончена.
Прошло почти 25 лет, у всех стало модно закрывать какие-то свои гештальты, решил закрыть и я.
Для начала нужно было ознакомиться с платформой и ее особенностями, а их как оказалось довольно много, как и у всей ретро-техники.
Железо
Знакомиться с платформой я начал буквально с "кишков микросхем, заказав плату, изучив схему и собрав это все чудо из рассыпухи, благо опыт работы с паяльником довольно неплохой.
Что мы имеем:
CPU - UA6527P/UA6527, Клон популярного в свое время 8-битного процессора 6502.
PPU - 6538/6528, Видеочип, аналог видеокарты.
RAM - 62256, 2 Кбайт оперативной памяти, которые позволяют использовать горизонтальный или вертикальный скролл по очереди, было бы 4 Кб можно было бы в теории и одновременно.
Звук - 2 прямоугольных канала, 1 треугольный, 1 шумовой и цифровой канал. Да-да, примитивная звуковая карта уже в те времена.
Разрешение экрана 256х240 и 54 цвета (Есть цвет чернее черного и еще некоторые цвета, которые лучше не использовать для избежания глюков на разных телевизорах).
Инструментарий
Писать код для приставки можно на двух языках: на ассемблере и си.
Я решил использовать си для короткого и удобного вида кода, но некоторые вставки ассемблерного кода пришлось писать с нуля (так как скорости процессора в 5,37 МГц всегда не хватало).
Для компиляции кода я использовал компилятор cc65, с опцией --add-source (добавляет ассемблерный код, в котором уже можно найти не очевидные косяки).
Для графики, кроме фотошопа использовал программу YY-CHR:
Для распиливания рома на прошивку, программу NRM.
Для статичных фонов есть очень удобная программа NES Screen Tool, которая позволяет нарисовать и выгрузить экран в массив байтов. Бонусом этом массив можно еще сжать RLE сжатием.
Для написания музыки и звуков я использовал FamiTracker и библиотеку FamiTone2.
Для создания уровней Tiled + самописный конвертер в встроенный формат карты.
Для схемы картриджа Sprint layout.
Для отладки лучше всего подходит эмулятор FCEUX:
Код игры
Но самая попаболь проблема, была в том, что я решил делать платформер а не статичную игру.
Сразу загрузить массив байтов на экран нельзя, потому что длинна уровня может быть от 3 до 256 экранов в длину.
Видеочип за один кадр успевает загрузить только 2 ряда блоков по 8 пикселей.
Еще за этот кадр нужно успеть прочитать состояние джойстиков, проиграть такт музыки, обработать коллизии, передвинуть спрайты на экране и т.п.
Для оптимизации я разработал такую структуру уровня. Где экран разбит на поле 16х16:
const unsigned char LEVEL1[] = {
...
0x75,
2,
ID_OBJECT,
...
};
Первый байт — координаты на экране x = 7, y = 5.
Второй байт — номер экрана уровня.
Третий байт — идентификатор объекта.
У каждого объекта есть атрибут коллизии, может игрок пройти через него или нет. На основе этих атрибутов строиться карта коллизии уровня.
unsigned char COLLISION[64];
Первые 32 байта, это первый экран NAMETABLE, вторые 32 байта для второго экрана NAMETABLE экрана.
Каждый бит, может быть, 0 если игрок может пройти и 1 если стена.
В итоге получаем два поля по 16х16 бит = 32+32 байта.
Картридж
Я не особо хороший художник, рисовать графику, уровни, спрайты, когда у тебя всего 4 цвета на плитку, уходит уж очень много времени.
Было решено упростить задачу и запихать все в один банк памяти.
Это позволяет использовать картридж без маппера и не писать дополнительный код, который переключает эти банки.
Из приставки можно реально выжать намного больше и красивее, но по трудозатратам эта игра будет на уровне современной игры с красивой графикой, стоит ли оно того?
Возможно, кто-то захочет этим заняться, и я поделюсь с ним своими наработками.
В итоге схемотехника картриджа сводиться к плате с 2мя микросхемами памяти, у которой нужно просто подключить ноги к шине данных картриджа.
Можно было бы, конечно, заказать у китайцев картриджи на каплях или флэш-памяти, но я хотел именно винтажного вида картриджа на DIP микросхемах (такие раньше попадались только в старых или дорогих картриджах)
Сами микросхемы найти не составило проблем, сначала я развел схему под w27c512, но как оказалось более объемная память w27c010 стоит дешевле и найти ее еще проще.
После того как пришли платы, я подготовил прошивку через NRM, прошил микросхемы в программаторе XGECU T48 и впаял их на место.
Распространение
Как продвигать игру, продавать картриджи и как их распространять: большой вопрос.
Также спрос на такие игры небольшой, даже если спрос и будет, то большую партию картриджей просто невозможно будет спаять.
Я крайне доволен своей работой, выпустить игру на физическом носителе для приставки 40-летней давности довольно крутая ачивка для разработчика игр.
И по традиции, страница игры... На авито?:
На скорую руку сообразил себе ретро-уголочек
Вставляю 9999 чаек... И по нес лась... 🎶
Та самая Денди! 🙌
Пост на ВК Твоя коллекция
👆 Публикуй свою коллекцию! Подключайся к сообществу и хвастай, чем новым пополнился ;)
Напишите, каких 16-битных хитов еще докинуть?
Пост на ВК Твоя коллекция
👆 Публикуй свою коллекцию! Подключайся к сообществу и хвастай, чем новым пополнился ;)