Как создать игру на nintendo ds

Обновлено: 03.07.2024

Я ранее читал этот ответ, и мне стало интересно приобрести Nintendo DS Lite для обучения программированию встроенных устройств. Прежде чем я выйду и побалую DS, у меня возникло несколько вопросов:

Будет ли лучше покупать ардуино (или подобное) и идти по этому маршруту? Мне нравится DS, потому что у него уже много встроенного оборудования.

Я думаю о получении карты CycloDS Evo, есть ли лучший вариант для доморощенного?

Каковы наилучшие ресурсы для изучения разработки DS?

Спасибо за ваше время. Если у вас есть DS и программа на нем, я бы хотел, чтобы вы услышали ваше мнение, или, альтернативно, если у вас есть идея лучше, я тоже хотел бы это услышать.

Нет, на самом деле не так много
ограничение, превышающее
оборудования, и даже это может быть
преодолеть с достаточным усилием. дрожать
был перенесен на DS, например, и игры с частицами, в которых используются оба процессоры. Там также обсуждается вопрос о том, как создавать более качественные 3D-сцены, используя рендеринг с двойным проходом. Есть несколько ресурсов на Nintendo Раздел DS GBADev форумы.

Я что DS является отличный маршрут для встроенных систем развитие; есть большой и активное сообщество, которое отвечать на вопросы и оказывать поддержку, и существует так много аппаратных средств прямо в вещь. Он экономит вам нужно создать систему для тест.

Эволюция CycloDS - это хорошая карта и довольно распространена, поэтому это не должно быть сложно - если необходимо вообще - чтобы ваш доморощенный был совместим с другие карты. Однако имейте в виду, что другими популярными вариантами являются M3 линии и линии R4, которые почти то же самое. у меня есть TTDS, и он работает хорошо, но не из коробки. Я бы рекомендовал остальные три упомянуты.

Что касается начиная с DS, я бы рекомендовать основные примеры, найденные в папке examples devkitPro и чтение GBA руководство TONC, который охватывает многие концепции которые используются как в GBA, так и в DS развитие. Более DS ориентированный учебник, Patater's Введение в Nintendo DS Программирование, помогут новичкам встать на их пути в мире DS. Существует также очень полная документация
спецификации для GBA и DS, известных как
GBATek.

Я сделал небольшое программирование на DS Lite около года назад. Основное аппаратное ограничение, которое у меня было, работало с оборудованием Wi-Fi. Я обнаружил, что связь DS-DS невозможна с библиотеками доморощенного в то время. Я не уверен, изменилось ли это. Я также обнаружил, что вы не можете создать Ad-Hoc-соединение с другим устройством. Я должен был подключиться к сети 802.11b в режиме инфраструктуры, и SSID должен был транслироваться.

Для разработки я использовал

Я не рекомендую Supercard Lite, поскольку он требует использования слота GBA и DS DS. В то время это был единственный вариант. В настоящее время существуют решения только для DS-слотов, такие как R4. У меня есть друг, который использует R4 и имеет довольно хороший успех, хотя я сам не использовал его.

Я не программировал на DS, но я сделал некоторую разработку на GBA (Game Boy Advanced). Если вам нужно научиться программировать встроенные устройства, это может быть хорошим вариантом для вас (и, конечно же, более дешевым). Там даже бесплатная книга, которую вы можете получить в Интернете: Программирование Nintendo Gameboy Advanced. Я предлагаю GBA, потому что, как я видел, в Интернете есть намного больше ресурсов, чтобы узнать, как программировать для него. Один из недостатков заключается в том, что он не имеет Wi-Fi, что означает, что вы не сможете делать столько классных вещей, как для DS, но это, безусловно, начало!

Ограничения - это аппаратные ограничения - там 4 Мб ОЗУ, 3D-оборудование может обрабатывать X полисов на кадр и так далее. Помимо этого, это всего лишь куча аппаратного обеспечения, с которым вы можете делать то, что хотите. Инструментальная цепочка поддерживает C/С++ и ассемблер (ARM).

У меня его нет, поэтому я думаю, что просто здесь. Выглядит неплохо.
Изменить: Единственное, что я выбрал бы, это то, что вы будете часто менять SD-карту между ПК и NDS, в то время как тележка с встроенным USB-разъемом даст вам немного быстрее оборачиваемость.

Лучшие ресурсы - примеры libnds, а затем gbadev forums.

Не могу сказать ничего о 1,2 или 3. но ресурс, который я использую для программирования GBA, также имеет информацию о DS:

На днях я получил эволюцию CycloDS, и я люблю ее! DSOrganize - это как мини-ОС, которая добавляет кучу вещей, которые я хотел, чтобы DS пришел, как и приложение реального календаря!

Я сделал оба, больше GBA, чем DS. Сначала я рекомендовал бы GBA, а затем перейти на DS, потому что он удваивает сложность. Ezflash V gba размером 3 в 1 - хорошая карта. У меня есть загрузочный загрузчик для gba, который я написал на карту, используя NDS и программу, которую я загрузил, и я не могу вспомнить имя офф-рук. Как только загрузчик работал с последовательным кабелем и позволяет мне отлаживать программы, а также загружать их в RAM. эта карта также позволяет загружать в плунжер на карте и запускать оттуда, используя буфер предварительной выборки и большую программу. Для NDS я пробовал многие из карт. Циклоды хороши для повседневного использования, но для развития не так много. Мне кажется, мне понравился Acekard 2 лучше, или R4. подумайте о том, сколько раз вы вытаскиваете карту и вытаскиваете SD-карту и загружаете ее в компьютер. Очень больно, что вам нужна карта с слотом для SD-карты, на который вы можете получить, не вытаскивая карту слота. циклоды не так. Очень хорошая карта, хотя для NDS. Я не думаю, что это работает на NDSi, где делает acekard 2. Как для nds, так и для gba вы можете мочить ноги с помощью симуляторов, таких как visualboyadvance, они не совсем точны и очень распространены, что программы, работающие на симуляторе, не будут работать на реальном оборудовании, программы, работающие на реальном оборудовании, обычно будут работать на симуляторе хоть. удаление карты разработки, перепрограммирование и замена очень болезненны, загрузчики, Wi-Fi или любой другой способ, который вы можете избежать, это того стоит.

Ардуины веселы и интересны, лилипад и USB для серийной штуки - это тот, который я рекомендую, никаких пайки не требуется, и вы можете начать использовать для не больших инвестиций. Мне нравится armmite pro лучше, arduino как след, но основанный на руке (единственный lpc, который я бы купил, а не поклонник lpc прямо сейчас). И вам не нужно покупать серийную вещь, просто обычный USB-кабель и перемычку (ну может быть, скрепка для бумаг, пока вы не припаиваете на перемычку). Я только что заказал еще два, и до сих пор мой код, который удалил флеш-версию, и позволил мне загружать все, что я хочу, не работает, должен пойти на это. Я по-прежнему очень доволен olimex sam7-h64 и h256 (панель заголовка at91sam7s256), так как avr atmel очень дружелюбен для разработчиков с хорошими документами. Sparkfun - хорошее место, чтобы найти все вышеперечисленное в США. У Sam-ba теперь есть версия linux, если вы используете linux, как я, версия для Windows была там на некоторое время, довольно легко стереть и перепрограммировать, намного проще, чем ds или gba, наравне с ардуином или armmite pro или аналогичный.

Раньше световой микро в настоящее время ti stellaris имеет несколько хороших досок. как gba/nds, но в отличие от других плат, о которых я упоминал, есть дисплеи и другие периферийные устройства для игры, usb - это все, что вам нужно для программирования. только режим большого пальца. GBA предпочитает режим большого пальца для производительности, но может идти в любом случае. nds, я не помню, никогда не понимал ширину автобусов и их время. Зная Nintendo и их дешевизну, вероятно, лучше/быстрее. плата lm3s811 eval была слишком легка для кирпича, 1968 год неплохой. Мне не нравится, что они отталкивают разработчиков от источника и в готовые библиотеки, адаптированные к rtos и конкретному набору компиляторов.


Всем привет!
Я думаю, что каждый из нас слышал о такой игровой консоли, как Nintendo DS. Да-да, это та самая портативная приставка с двумя экранами, из-за них она именно DS — Dual Screen. Многое я слышал о ней и хорошего и плохого, и даже были моменты, когда я сильно хотел купить эту приставку, хоть она мне и не нужна особо была. Наверное, это тот момент, когда я узнал о GTA: Chinatown Wars. Впрочем как и PSP хочу купить только из-за двух игр. Я думаю вы уже догадались о чем я))
Итак, если верить википедии, то игровая приставка NDS довольно слабая, по сравнению с той же PSP. Процессор 67 МГц, 4 Мб памяти, 3D-видео уже не впечатляют. Понятное дело, что это явно не PSP и графика в играх значительно отстает. Во многих играх конечно графика на высоком уровне, но 3D-игры на этой приставке оставляют желать лучшего.

Если вы не фанат японо-китайских игр, типа Final Fantasy и «Покемонов», то эта приставка вам вряд ли подойдет. Но что делать, если захотелось поиграть в одну единственную игру? Как мне захотелось в GTA: CW поиграть. Выкладывать $200 за одну игру? Ну ладно, я еще понимаю PlayStation 3 купить ради Heavy Rain, сам подумываю купить в ближайшем будущем. Но тут случай другой все таки.
Ну если вам не чуждо пиратство и не грызет совесть, когда нелегально играете в игры, смотрите CamRip фильмов, слушаете музыку «ВКонтакте»… в общем речь пойдет об эмуляторе. Эмуляторе Nintendo DS для персонального компьютера.

Установка и настройка эмулятора

Если мы запустим эмулятор, просто запустим, то «экран приставки» в эмуляторе будет очень маленьким. Для игровой приставки это нормально, она портативная как никак. А вот для 22'' экрана компьютера это будет не очень хорошо выглядеть. Следовательно, надо как то увеличить окошко эмулятора. По умолчанию окно эмулятора «растянуть» нельзя. Поэтому запускать эмулятор мы будем с помощью программки NO$Zoomer, которая позволит нам это сделать.

Поехали:
1) Открываем папку NO$Zoomer 2.3.0.1
2) Запускаем файл NO$Zoomer. Запустится эмулятор, появится диалоговое окно.
3) В появившемся диалоговом окне находим файл NO$GBA.exe и щелкаем мышью по кнопке «Открыть». Диалоговое окно закроется, но появится новое.
4) В появившемся диалоговом окне находим ром-файл игры, которую хотим запустить и щелкаем мышью по кнопке «Открыть».
5) Enjoy!


Как изменить китайский язык на английский?
По умолчанию, в эмуляторе используется китайский язык. Чтобы сменить на английский язык, повторите указанные на картинках действия:


Настройка управления:
Чтобы изменить управление, выберите в строке меню пункт
«NO$GBA»->«Options»->«Control Setup». Появится диалоговое окно.
В правой части диалогового окна, в полях ввода с названиями клавиш устройства укажите клавиши на клавиатуре. Для принятия изменений щелкните мышью по кнопке ОК.


Настройка эмуляции:
Чтобы изменить настройки эмулятора, выберите в строке меню пункт
«NO$GBA»->«Options»->«Emulation Setup»
Рекомендую ничего тут не трогать, разве что изменить один параметр
GBA Mode: VGA (Poppy Bright)
Хотя если у вас эмулятор будет тормозить, можете уменьшить качество звука и установить высокую скорость эмуляции.

Эмулятор работает с большим количеством игр даже на слабых компьютерах. Проверял на Samsung N150. GTA Chinatown Wars: 5-30 FPS. А вот 2D-игры идут на ура.

Где скачать ром-файлы думаю говорить не надо. Торренты, Файлообменники. Ищите и играйте на здоровье.

Свою игру для 3ds я написал еще давно и иногда в роликах мелькали кадры прототипа. Это было примерно 2 года назад и тогда я взял первое попавшееся решение, лишь бы быстрее показать, что на эту консоль тоже можно делать игры. И вы не поверите, но по прошествии времени оказалось, что движков под эту платформу больше не стало. Навскидку можно вспомнить привычный unity, который без особых проблем ставится, но скомпилированный проект на железке завести пока не получается, хотя на форумах пишут, что у кого-то вышло. Если получится это сделать, то я расскажу про это, а пока что давайте напишем игру для 3ds с Любовью.

Любовь 2D (love 2d) - это фреймворк для разработки игр под различные привычные платформы. Большим плюсом является написание программ на языке lua, который достаточно простой и понятный, в итоге этот фреймворк и не самый известный, но на нем делают даже коммерческие игры, которые можно найти в steam, некоторые даже с отличными показателями продаж. Изначально love2d затачивался под именно двухмерную графику, но уже есть дополнения, которые позволяют грузить и 3d графику. Простыми словами, даже вне написания игры для 3ds, вполне можно попробовать сделать что-то свое. И эта статья будет отчасти прикладным уроком, где я от и до быстро покажу все моменты создания игры, а если вас это заинтересует, то без проблем сможете повторить, а дальше почерпнуть сведения из уроков и wiki фреймворка.

Создание игры на этом фреймворке мне честно очень напомнило программирование в детстве, когда приходилось каждый объект рисовать и двигать без помощи всяких модных вещей, которые дает современный игровой движок. Тут нет своего ide, то есть так называемой "среды разработки", потому код писать можно там, где вам удобно, я для этого использую npp, а графику рисовать в любом графическом редакторе. И тут нет редакторов уровней или каких-то физических движков, даже реализацию анимированного спрайта надо писать самому. Но при этом есть возможность либо скачать код с форума разработчиков, либо сделать реализацию именно так, как вы хотите.

Традиционно, я использую 10ю винду, для того, чтобы появилась возможность разрабатывать приложения под системы nintendo, надо скачать и установить devkitPro, он почти все сделает автоматически. На вики заявляется, что с помощью этого проекта можно писать игры под разные платформы, начиная с game boy advance, продолжая GameCube, Wii, Nintendo DS, Nintendo Switch и некоторых других. Из этого списка мне еще интересно глянуть на wii, с инфой для этой консоли я пока разбираюсь. После установки devkitPro сам настроит все переменные в системе и самое важное, появится возможность компилировать проекты из командной строки командой make.

Please note: This is the installer provided by devkitPro which installs and updates the tools and…

Прежде чем сделать надо, нам понадобится несколько вещей. Для начала, возьмем фреймворк lovepotion версии 1.08. Самая свежая версия 2.0 и я беру более старую потому, что у нее чуть больше функционал конкретно для 3ds. Мне очень нравится, что есть возможность компилировать сразу в cia, что в новой версии убрали. Я чуть позже разберусь с этим, пока что пользуемся проверенным методом.

💖 Lua + LÖVE + 3DS = LövePotion. Contribute to videah/LovePotion development by creating an…

И давайте сперва создадим папку Hello World, внутри которой создадим папку game, где создадим текстовый файл main.lua и впишем туда простой код, который вызывает отрисовку текста на экране с определенными координатами.

function love.draw() love.graphics.print("Hello World!", 200, 200) end

Если бы мы делали игру для PC, то тут надо было бы скачать фреймворк love2d, взять папку game и перетянуть ее на исполняемый файл и посмотреть как работает программа, либо же прописать к love.exe путь к папке game (love.exe e:\2ds\HelloWorld4\game), после чего игра запустится.

Но так как у нас цель сделать Homebrew под 3ds, то поступаем чуть иначе, кидаем в папку два файла, первый - lovePotion.elf, это скомпилированный фреймворк, а так же файл для сборки Makefile, внутри которого расписано как и что собирать. После этого через консоль набираем make и проект компилируется в 3dsx файл.

Теперь достаточно важный момент. Если вы смотрели мои ролики по разработке игр на другие платформы, то там собранную игру надо было кидать на реальное устройство и проверять его работу. Где-то это было удобно, как с xbox360 и делалось автоматически, а на той же ps vita было так себе. Скомпилировал, пересобрал, кинул на реальное устройство, установил, запустил, проверил, в общем, нудятина. Кстати, в одном из следующих видео я расскажу про инструменты для работы с psvita, которые жизнь упрощают, а вот с 3ds работа чуть упрощается сразу.

Дело в том, что давно и успешно развивается эмулятор citra, который поддерживает множество коммерческих игр и если у вас мощный комп, то играть можно во что угодно и с отличным разрешением. Нам же эмулятор поможет тестировать написанную нами программу. Скачиваем, запускаем, выбираем "файл-загрузить файл" и выбираем созданный 3dsx и убеждаемся, что все работает нормально.

Если же нам требуется cia файл, то тут надо в папку докинуть файлы, содержащие баннер, описание программы и утилиты, которые собирают итоговый пакет. Для удобства я их упаковал в архив, который можно найти в подписи к ролику. Теперь для компиляции набираем make cia и получаем нужный файл, который так же можно проверить в Цитре. Сразу скажу небольшую особенность - если изменить код и заново собрать cia файл, то он перезапишется, если же 3dsx, то компилятор будет ругаться и надо ранее скомпилированную программу удалить. Для решения это проблемы можно создать batник, куда прописать несколько команд, уменьшающие лишние телодвижения. При установке cia файлов в Citra, игра будет переписываться автоматически.

Установка игры - это перешифровка архива (cia) с игрой с помощью уникального для каждой консоли ключа (movable.sed) и запись его в определённом виде на карту памяти. В процессе установки помимо перешифровки создаются так же записи в базу данных консоли. Весь этот процесс происходит на самой приставке. Так как мощность приставки семейства 3DS не очень большая, а так же потому что в процессе установки происходит чтение с карты памяти и одновременно запись на неё, скорость установки редко превышает 3Мб\с. Что очень медленно. Гигабайтная игра будет устанавливаться примерно 10 минут на new 3DS XL, на old 3DS - около 15. Это значит, что для того, чтобы забить играми карту в 32Гб нам понадобится примерно 5 часов, которые уйдут на установку игр. Так же следует помнить, что установочные файлы игры, как правило, находятся на карте памяти и занимают место. То есть, чтобы установить игру размером в 4Гб, вам нужно скопировать её установщик на карту памяти и иметь еще 4Гб свободного места. Устанавливать, конечно, можно и по WiFi, что избавит от необходимости держать файл установки на карте памяти, однако, выигрыш в скорости если и будет, то очень скромный, поскольку перешифровка данных всё равно будет происходить силами системы. Метод, использующий силы консоли для перешифроки программы, мы назовём классическим.

Очевидное решение, позволяющее избавиться от недостатков классического метода - использовать ПК для перешифровки. С помощью специального ПО и ключа (movable.sed), извлечённого из прошитой консоли, мы заранее перешифровываем содержимое архива с игрой и просто копируем его в нужные папки на карте памяти приставки. И играем. Установка одного гигабайта занимает около 2х минут. То есть карту в 32Гб мы полностью забьём минут за 15. Причём, половину времени будет занимать копирование игры на карту памяти. На деле всё немного сложнее, но лишь на самую малость. Такой метод установки мы будем называть быстрым.

В данный момент установка быстрым методом не поддерживает установку DLC. Так же нет большого смысла использовать этот метод для установки игр размером менее 100Мб (они и так устанавливаются достаточно быстро).

На приставку можно установить игры только в формате .cia . Игры в других форматах нужно предварительно сконвертировать.

Установка приложений

Что понадобится

Если вы купили приставку у меня (в VK или на OLX), то у вас уже b9s со всеми необходимыми программами. Ищите их в папке Система (System).

  • Установленный и рабочий b9s последней версии
  • Установленная и рабочая свежая версия FBI
  • Свежая версия custom-install-standalone
  • Свежая версия custom-install-finalize.3dsx

Часть I - Подготовительные работы

Эту часть необходимо сделать всего раз, в дальнейшем установку начинайте со второй части

    из меню чейнлоадера. Чтобы попасть в него, удерживайте нажатой кнопку во время включения приставки
    • Обратите внимание, что если у вас имеются другие файлы помимо GodMode9.firm в папке /luma/payloads/ на SD-карте, удержание кнопки при загрузке будет запускать “chainloader menu”, где вам нужно будет использовать D-Pad и кнопку для выбора “GodMode9” при выполнении этих инструкций.
  1. Если вам предложат создать бэкап важных файлов, нажмите кнопку сделать это, затем нажмите чтобы продолжить после завершения
  2. Если вам предложат выставить RTC дату и время, нажмите чтобы сделать это, настройте дату и время, затем нажмите чтобы продолжить
    • Обратите внимание, что если вы выставили RTC дату и время, то время самой приставки собьется. Исправьте его позже вручную, или синхронизируйте с помощью приложения “ctr-no-timeoffset”
  3. Перейдите в “[1:] SYSNAND CTRNAND” -> “private”
  4. Поставьте курсор на movable.sed и нажмите
  5. Выберите “Copy to 0:/gm9/out” и нажмите . Нажмите ещё раз
  6. Зажмите и нажмите , чтобы выключить приставку
  7. Вставьте в ПК SD-карту приставки
  8. Распакуйте custom-install-standalone.zip на ПК
  9. Поместите custom-install-finalize.3dsx в папку с распакованным custom-install-standalone.zip
  10. Поместите содержимое архива custom-install-files.zip в папку с распакованным custom-install-standalone.zip
  11. Переместите файл movable.sed , который находится на карте памяти приставки по адресу /gm9/out в папку с распакованным custom-install-standalone.zip

Часть II - Конвертация игр

Выберите boot9.bin , seeddb.bin и movable.sed , нажав на … напротив соответствующих полей


Если игра будет говорить о том, что данные сохранений повреждены. Большинство просто удалят повреждённые данные и создадут новые, однако ряд игр, например игры серии Pokemon, требуют удаления повреждённых сейвов вручную. Как удалять сейвы для каждой конкретной игры ищите с инструкции к игре. Например, чтобы удалить сейвы у игр серии Pokemon, нужно запустить игру, а затем зажать и удерживать кнопки + + , пока игра не запустится и уже в игре согласится на удаление сохранений.

Что понадобится

Если вы купили приставку у меня (в VK или на OLX), то у вас уже b9s со всеми необходимыми программами. Ищите их в папке Система (System).

  • Установленный и рабочий b9s последней версии
  • Установленная и рабочая свежая версия FBI

Установка с SD-карты

  1. Вставьте SD-карту в ПК
  2. Создайте папку games в корне SD-карты и скопируйте в нее приложения в формате .cia
  3. Вставьте SD-карту в консоль и включите её
  4. Запустите FBI
  5. Перейдите в папку SD
  6. Перейдите в папку games
  7. Наведите курсор на необходимую игру и нажмите
  8. Выберите Install CIA для установки игры, либо Install and delete для установки и автоматического последующего удаления .cia-файла
  9. По завершению установки нажмите и закройте FBI
  10. Установленное приложение появится в меню Home.

Можно установить все файлы из папки. Для этого следует выбрать самую верхнюю строку - \<current directory> , нажать на ней , а затем выбрать необходимое действие.

Можете использовать любой из представленных способов для установки

Способ I - Установка с помощью QR-кода

Если у вас нет указанных пунктов, обновите FBI! Для этого воспользуйтесь пунктом “Update” в его меню. В случае, если FBI у вас установлен с помощью инъекции в приложение “Информация о здоровье и безопасности” (Health & Safety), то при обновлении его иконка дублируется. Для того, чтобы этого избежать, восстановите приложение “Информация о здоровье и безопасности”

  1. Запустите FBI
  2. Выберите пункт “Remote Install”, а затем “Scan QR code”
  3. Отсканируйте необходимый QR-код

Способ II - Установка с помощью программы FBI Server

  1. Запустите FBI
  2. Выберите пункт “Remote Install”, а затем “Recive URLs over the network”
  3. Запускаем FBI Server.exe
  4. В графе 3DS IP Adress введите IP, написанный на нижнем экране приставки.
  5. Убедитесь, что в графе “Computer IP Adress” указан именно ваш локальный IP (обратитесь в Google, если не знаете как его узнать)
  6. Выберите CIA нажав на кнопку “Select single CIA file”, или на “Select folder for Queuing” для выбора папки с файлами
  7. Нажмите на кнопку “Start”
  8. На нижнем экране 3DS должны появиться две кнопки. Нажмите на для подтверждения установки.
    • Если кнопки не появились, убедитесь, что в программе стоит верный IP и нажмите кнопку “Start”. Может понадобится несколько попыток

Важно понимать, что скорость установки программ таким способом не очень высокая и ограничивается примерно 500KBps для old3ds и 1.5Mbps для New.

Читайте также: