Разработка и ромхакинг > Разработка игр
[NES] T-Rex Runner — порт динозаврика из Chrome
(1/1)
Денди разработчик:
Я сделал еще одну игру а точнее порт знаменитой игры с динозавриком из Google Chrome для Dendy, Famicom и NES. Проект написан с нуля на ассемблере 6502 и собирается в обычный ROM-файл формата .nes.



Я постарался сохранить оригинальную механику игры:

[*]физику прыжка и управление его высотой;
[*]постепенное увеличение скорости;
[*]кактусы разных размеров и их комбинации;
[*]птеродактилей на разных высотах;
[*]подсчёт очков и сохранение рекорда;
[*]смену дня и ночи;
[*]паузу, экран Game Over и перезапуск;
[*]музыку и звуковые эффекты через четыре звуковых канала NES.
[/list]

Как это сделано

Внутри игровая логика работает в координатах оригинальной браузерной версии. Дробные значения, скорость и физика реализованы через fixed-point арифметику 8.8, поскольку у процессора 6502 нет чисел с плавающей точкой.

Кактусы выводятся не спрайтами, а тайлами фона и постепенно записываются в nametable во время прокрутки. Это помогает экономить спрайты и избегать мерцания.

Для независимой прокрутки игрового поля и неподвижной строки очков используется sprite-zero hit.

ROM имеет простой формат NROM-256, mapper 0:

[*]32 КБ PRG-ROM;
[*]8 КБ CHR-ROM;
[*]вертикальный mirroring.
[/list]

Он подходит для эмуляторов и флеш-карт для NES, Famicom и Dendy. Игра рассчитана прежде всего на NTSC 60 Гц. На 50-герцовых клонах Dendy игровой процесс и темп музыки могут быть немного медленнее.

Сборка

Для сборки нужны только
--- Код: ---make
--- Конец кода ---
и пакет
--- Код: ---cc65
--- Конец кода ---
, в который входят ассемблер
--- Код: ---ca65
--- Конец кода ---
и линкер
--- Код: ---ld65
--- Конец кода ---
.


--- Код: ---git clone https://github.com/atonamy/nes-t-rex-game.git
cd nes-t-rex-game
make

--- Конец кода ---

Графика
--- Код: ---build/trex.chr
--- Конец кода ---
уже включена в репозиторий, поэтому дополнительные инструменты для её генерации не нужны.

Лицензия

Проект бесплатный и с открытым исходным кодом. Код NES-порта распространяется по лицензии MIT. Элементы, основанные на Chromium, сохраняют условия BSD-лицензии.

Ссылки

Готовый ROM и последняя версия:
Скачать T-Rex Runner для NES

Исходный код и инструкция по сборке:
GitHub — atonamy/nes-t-rex-game

Для разработки и отладки использовался Mesen и инструмент:
atonamy/mesen-agent

Буду рад отзывам, результатам запуска на реальном железе и сообщениям о найденных ошибках.
vitsum:
Денди разработчик, Прикольно, но исходный код никому не интересен если у каждого есть клод)
Про Игрок:
Уу. Интересно. Будет во что побегать в дороге и во время блэкаутов  :lol:
А проект завершен? Если нет - хотелось бы видеть доработки в виде бонусов а-ля двойной прыжок (для прыжков через страуса как в Короле Льве) или плевки огненным шаром для пробивания стенки/врага.
p.s. Плюс одна игра в "нубофон".
Werton:

--- Цитата: Денди разработчик от 29 Июля 2026, 18:59:35 ---Я Claude code сделал еще одну игру а точнее порт знаменитой игры с динозавриком из Google Chrome для Dendy, Famicom и NES
--- Конец цитаты ---
Исправил, не благодари :lol:


--- Цитата: Денди разработчик от 29 Июля 2026, 18:59:35 ---Проект написан с нуля на ассемблере 6502 и собирается в обычный ROM-файл формата .nes.
--- Конец цитаты ---
С нуля, это когда с нуля, а не конвертацией из готовых открытых исходников через нейронку.


--- Цитата: Денди разработчик от 29 Июля 2026, 18:59:35 ---Я постарался сохранить оригинальную механику игры:

физику прыжка и управление его высотой;
постепенное увеличение скорости;
кактусы разных размеров и их комбинации;
птеродактилей на разных высотах;
подсчёт очков и сохранение рекорда;
смену дня и ночи;
паузу, экран Game Over и перезапуск;
музыку и звуковые эффекты через четыре звуковых канала NES.
--- Конец цитаты ---
Блин как же нейронка наваливает, аж рука сама тянется к кошельку :biggrin:

Ну а вообще, я считаю автор изменяет себе и явно упускает возможность, стоило заменить динозавра на слона и продавать по 2 бакса, как ту самую игру про Дэнди, все таки 40 кB это вам не это :biggrin:
Agent Smith:

--- Цитата: Денди разработчик от 29 Июля 2026, 18:59:35 ---порт знаменитой игры с динозавриком из Google Chrome для Dendy
--- Конец цитаты ---
Денди разработчик, вещь! Всегда удивлялся, почему такого до сих пор не выпустили.

--- Цитата: Денди разработчик от 29 Июля 2026, 18:59:35 ---музыку и звуковые эффекты через четыре звуковых канала NES
--- Конец цитаты ---
Так там же пять каналов?
Денди разработчик:

--- Цитата: Про Игрок от 30 Июля 2026, 09:47:23 ---нубофон
--- Конец цитаты ---

--- Цитата: Про Игрок от 30 Июля 2026, 09:47:23 ---А проект завершен? Если нет - хотелось бы видеть доработки в виде бонусов а-ля двойной прыжок (для прыжков через страуса как в Короле Льве) или плевки огненным шаром для пробивания стенки/врага.

--- Конец цитаты ---

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

Добавлено позже:

--- Цитата: Agent Smith от 30 Июля 2026, 15:06:31 ---Так там же пять каналов?
--- Конец цитаты ---
Пятый канал отличается от остальных: DMC предназначен для воспроизведения цифровых сэмплов из памяти, а не обычных нот. В этой игре все звуки и музыка синтезируются четырьмя основными каналами, поэтому DMC пока не используется.
vitsum:
Денди разработчик,

такое уже делали, и наверное не раз:

https://theberg.itch.io/

https://youtu.be/KKACaHw3DSY?is=BlGcAKdu2Uzea4ar
Smoke_John:
С такой (двухцветной) графикой можно для спектрума собрать, без потерь получится.
.
Навигация
Главная страница сообщений

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