TWiLight Menu++ — это обновление/замена меню DSi с открытым исходным кодом для карточек Nintendo DSi, Nintendo 3DS и Nintendo DS. Он может запускать Nintendo DS(i), SNES, NES, GameBoy (Color), GameBoy Advance, Sega GameGear/Master System, SG-1000/SC-3000 и Mega Drive/Genesis, Atari 2600/5200/7800/XEGS, MSX. ПЗУ Intellivision, Neo Geo Pocket, Sord M5, PC Engine/TurboGrafx-16, WonderSwan и ColecoVision, а также плагины DSTWO (если вы используете DSTWO).
Для компиляции этого приложения требуются devkitPro от devkitPro, libnds, grit и mmutil. Их можно установить с помощью devkitPro pacman с помощью следующей команды:
sudo dkp-pacman -S nds-dev
(Примечание: команда зависит от ОС, sudo может не потребоваться, вместо этого может быть просто pacman
.)
Репозиторий содержит подмодули, поэтому клонировать нужно рекурсивно:
git clone --recursive https://github.com/DS-Homebrew/TWiLightMenu.git
Если вы клонировали, не извлекая подмодули, вы можете обновить их впоследствии:
git submodule update --init --recursive
После установки наборов инструментов devkitPro вы можете полностью собрать TWiLight Menu++, просто запустив make package
в корне репозитория. Если вы хотите собрать только определенную часть TWiLight Menu++, вы можете cd
в эту папку и запустить make dist
.
После завершения сборки выходные файлы будут находиться в папке 7zfile
с той же структурой каталогов, что и официальные сборки TWiLightMenu.7z
.
Используя прилагаемый образ Docker, вы можете легко скомпилировать TWiLight Menu++ без необходимости вручную настраивать необходимую версию devkitARM, используя предоставленные сценарии PowerShell ( .ps1
).
Скрипт также принимает аргументы make
. Например, .compile_docker.ps1 clean
очистит каталоги от всего скомпилированного кода. Если вы хотите собрать все артефакты, запустите .compile_docker.ps1 package
.
Обратите внимание, что компиляция Docker несовместима с собственной компиляцией в Windows. Вам следует запустить .compile_docker.ps1 clean
, чтобы очистить артефакты, прежде чем пытаться выполнить сборку с помощью Docker. Если появится уведомление с просьбой предоставить общий доступ к вашему диску, вам необходимо включить общий доступ к диску, чтобы Docker работал в Windows.
Страницы руководства хранятся в отдельном репозитории и загружаются из версии при сборке TWiLight Menu++. Для получения дополнительной информации см. репозиторий twilight-manual.
TWiLight Menu++ состоит из нескольких «подпроектов», которые работают вместе, чтобы создать замену меню DSi. Большинство подпапок в репозитории содержат собственный код, который компилирует файл xxx.nds
, который обычно копируется в /_nds/TWiLightMenu/xxx.srldr
внутри файла 7z
(или папки 7zfile
).
3dssplash : открывает файлы 3ds и cia (?)
Скомпилировано в /_nds/TWiLightMenu/3dssplash.srldr
booter : основная точка входа, первый файл, загружаемый консолью при использовании SD-карты или CFW.
Создает /BOOT.nds
и /title/00030004/53524c41/content/00000000.app
(тот же файл).
booter_fc : основная точка входа для карточек.
Создает _DS_MENU.dat
, dsedgei.dat
, akmenu4.nds
, _DSMENU.nds
, SCFW.SC
и другие.
gbapatcher
imageview : просмотрщик изображений, аналогичный камере DSi (gif, png, bmp)
/_nds/TWiLightMenu/imageview.srldr
руководство : инструкция по эксплуатации TWiLight Menu++.
Создает /_nds/TWiLightMenu/manual.srldr
быстрое меню : меню DS Lite, старый классический интерфейс.
Создает /_nds/TWiLightMenu/mainmenu.srldr
ресурсы : объединяет антипиратские и широкоэкранные патчи в файл пакета.
/_nds/TWiLightMenu/extras/apfix.pck
и /_nds/TWiLightMenu/extras/widescreen.pck
romsel_aktheme : меню для темы пользовательского интерфейса Wood.
Создает /_nds/TWiLightMenu/akmenu.srldr
romsel_dsimenutheme : меню для темы DSi, используемой «Nintendo DSi», «Nintendo 3DS», «SEGA Saturn» и «Homebrew Launcher».
Создает /_nds/TWiLightMenu/dsimenu.srldr
romsel_r4theme : меню для темы R4, используемой в «R4 Original» и «Gameboy Color».
Создает /_nds/TWiLightMenu/r4menu.srldr
настройки : меню настроек
Создает /_nds/TWiLightMenu/settings.srldr
слот1запуск :
Создает /_nds/TWiLightMenu/slot1launch.srldr
title : заставка при загрузке (логотип Nintendo по умолчанию)
Создает /_nds/TWiLightMenu/main.srldr
Вы можете помочь перевести TWiLight Menu++ в проекте Crowdin. Если вы хотите запросить добавление нового языка, сделайте это на сервере Discord.
Rocket Robz: ведущий разработчик
chyyran: перенос пользовательского интерфейса akMenu/Wood в TWiLight Menu++ и добавление возможности загрузки подтем с SD-карты для тем DSi/3DS.
Pk11: добавлена возможность загрузки скинов с SD-карты для темы R4, реализована сортировка и сделано руководство с использованием PNG, улучшенный рендеринг шрифтов, предоставление пользовательского фона для запуска, управление переводами и различные исправления ошибок.
DieGo: добавление поддержки пользовательских значков ПЗУ/папок и улучшения пользовательских скинов.
lifehackerhansol: улучшение поддержки автоматической загрузки с флэш-карты и загрузки ядра, а также форк libnds32 для поддержки драйверов DLDI размером 32 КБ.
NightScript: очистка кода, определение стандартов кода, добавлена функциональность карточек для темы пользовательского интерфейса Wood, страницы руководства.
ahezard, Shutterbug2000 и Rocket Robz: nds-bootstrap (используется для запуска ПЗУ Nintendo DS(i) с SD-карты)
Алекмаул: AmeDS (используется для запуска прошивок Amstrad CPC)
Alekmaul и wavemotion: StellaDS, A5200DS, A7800DS, A8DS (используется для запуска ПЗУ Atari 2600/5200/7800/XEGS) и ColecoDS (используется для запуска ПЗУ ColecoVision, MSX, Sord M5 и Sega SG-1000/SC-3000)
Archiede: SNEmulDS (используется для запуска SNES ROM)
Кото: Возрождение SNEmulDS
chishm: tuna-viDS (используется для воспроизведения видео Xvid)
Drenn: GameYob (используется для запуска ПЗУ Gameboy)
FluBBaOfWard: S8DS (используется для запуска ПЗУ Sega Master System, Game Gear, SG-1000/SG-3000 и ColecoVision), NitroGrafx (используется для запуска ПЗУ PC Engine/TurboGrafx-16), NitroSwan (используется для запуска ПЗУ WonderSwan), и NGPDS (используется для запуска прошивок Neo Geo Pocket)
FluBBaOfWard, Coto и Loopy: nesDS (используется для запуска NES ROM)
Apache Thunder: TWL-версия nesDS
Gericom: FastVideoDSPlayer (используется для запуска видео FastVideoDS) и GBARunner2 (используется для запуска ПЗУ GameBoy Advance вне режима GBA DS Phat/Lite)
therealteamplayer: объединенные сборки GBARunner2 с Hicode+DSP для DSi/3DS
неразрешенный символ: rom3M+master сборки GBARunner2 с расширенным DSL, включенные для игры в Pokémon: Emerald Version на флэш-карточках
Lordus: jEnesisDS (используется для запуска прошивок Sega Mega Drive/Genesis)
xonn83: GBMacro версия jEnesisDS
redbug26: CrocoDS (используется для запуска прошивок Amstrad CPC)
Райан ФБ, Rocket Robz и xonn83: PicoDriveTWL (используется для запуска больших ПЗУ Sega Mega Drive/Genesis)
wavemotion: Nintellivision/NINTV-DS (используется для запуска ПЗУ Intellivision)
Отсутствующая реальность: значок Intellivision
davi: граница для темы GBC (изначально для GameYob).
fail0verflow, Fluto и Arkandar: графика Homebrew Channel/Launcher
FlameKat53: значок руководства для меню SELECT
темы DSi.
Мистер Старт: заставка Super Nintendo DS
PW5190: заставка TWLMenu++ в стиле Kirby.
spinal_cord: графика DSi4DS и DSision2
StarvingArtist: значки игровой консоли
BlastoiseVeteran: обновленная версия музыки из Nintendo DSi Shop.
IkaMusumeYiyaRoxie: звуковой шрифт General N64 MIDI, используемый для фанфар заголовков в старых версиях.
dbry: код декодера IMA-ADPCM Xtreme Quality из adpcm-xq.
Firexploit: звуки пользовательского интерфейса 3DS для темы 3DS, некоторые из которых также используются в теме DSi.
Ахезард: код NDMA из nds-bootstrap
Другой мир и Желтый лесной гоблин: оригинальный интерфейс akMenu/Wood
Arisotura: список ПЗУ от melonDS и код дампера BIOS от dsibiosdumper
Dartz150: исправлено исправление для игр Iridion II и Top Gun: Combat Zones GBA.
devkitPro: код, используемый в nds-hb-menu, а также использование загрузчика, devkitARM, libnds и libfat.
edo9300: код проверки DS Phat
Gericom, TrolleyDave и FAST6191: код исправления GBA SRAM, используемый в gbapatcher (поток исправлений SRAM на GBAtemp)
Gericom и profi200: код цветокоррекции GBA, используемый в GBARunner3.
Никокаро: Найдены патчи без наклона для WarioWare: Twisted! и Йоши с ног на голову . (тема GBAtemp)
profi200: Улучшен SD-код из fastboot3DS.
RadDude McCoolguy, fintogive, KazoWAR, Vague Rant, gamemasterplc, Rocket Robz, ChampionLeake, DeadSkullzJr, Spellboundtriangle, LedyBacer: Широкоэкранные читы
Retrogamefan и Rudolph: Включены AP-патчи для nds-bootstrap.
enler: Исправление AP-патча для Pokemon Black 2 (Япония) для совместимости с режимом DS⁽ⁱ⁾
Rocket Robz: исправление некоторых улучшенных игровых AP-патчей DS⁽ⁱ⁾ для совместимости с режимом DS⁽ⁱ⁾.
SNBeast: запуск патчей
Тайдзю Ямада: код, используемый для обхода защиты загрузочного файла R4i-SDHC
Арабский: Кен Браун, SLG3
Болгарский: Peter0x44, Теску
Каталанский:
Упрощенный китайский: cai_miao, Chris, Forbidden, James-Makoto, R-YaTian, Yukino Song, 曾国立, 天天地地人人, 百地 希留耶
Традиционный китайский: cai_miao, ccccchoho, Джеймс-Макото, Ринтим, 奇诺比奥
Чешский: Штепан Дольский
Датский: Джоната, Майкл Милле, Надя Педерсен
Голландский: Артур, guusbuk, Mikosu, Minionguyjpro, Xtremegamer007.
Французский: Arcky, cooolgamer, Dhalian, maximesharp, Ghost0159, Léo, LinuxCat, Martinez, NightScript, SLG3, SombrAbsol, TM-47, Yolopix.
Немецкий: ariebe9115, Blurry Knight, Кристиан Шуман, Дубсенберт Ричес, Фират Тай, хе-хе, Ильке Хюр Эйиол, Джулиан, Казуто, Malekairmaroc7, Михаэль Брей, Олег Хаценко, SkillLP, SuperSaiyajinStackZ, Tcm0, TheDude, TM-47, Uriki
Греческий: Anestis1403
Иврит: Баравер, Янив Левин
Венгерский: Виктор Варга, ハトヴィング -- ハット
Индонезийцы: Кируз Уингс, Фарид Ирван, Хейдутдут, Шиори.
Итальянский: Алессандро Тавольери, Леонардо Ледда, Маттиа, ТМ-47, Вендикатореалато, Ксавимель
Японский: Chromaryu, inucat, Pk11, kuragehime, rinrinrin2002, Rintim, Ронни Чан, Урики.
Корейский: DDinghoya, lifehackerhansol, I'm Not Cry, Myebyeol_NOTE, Олег Хаценко, 그그기그
Норвежский: аннулированный блок
Польский: Avginike, gierkowiec tv, Kipi000, Конрад Боровский, MaksCROWDIN0, Матеуш Тобиас, Михал Слонина, RedstonekPL, TheCasachii
Португальский (Бразилия): Сезар Мемер, Джефф Соуза, мастер, Виктор Коронадо
Португальский (Португалия): Брювивн, Кристофер Родригеш, Габз Алмейда, Джим, Джойрв, Летека 1234, Родриго Таварес, Тьяго Силва, Водсон де Андраде, Водсон де Андраде, Зак
Румынский: Tescu
Русские: Алексей Барсуков, Ckau, manwithnoface, mbhz, MMR Marler, Никита, Молодая Кукуруза
Рюкюань: курагехимэ
Испанский: Адрин Рамен, Адриан Родригес, Allinxter, beta215, ccccmark, dimateos, Kaede159, KplyAsteroid, mschifino, Николас Эррера Конча, Nintendo R, nuxa17, Radriant, SofyUchiha, TM-47, Uriki, XxPhoenix1996xX
Шведский: Макс Хамбреус, Nullified Block, TM-47, Виктор Алин, Уолтер Линделл
Турецкий: Alp, Egehan.TWL, Emir, GlideGuy06, Grandmaquil, imbeegboi22, İlke Hür Eyiol, rewix32, rewold20, Ягмур Челеп
Украинцы: Олег Гаценко, Николай Пухальский, ТМ-47, вухаста гитара
Валенсийский: цоло
Вьетнамский: Чо Тьен Бинь, даикахуойи О Минь Хиу, хотунгхан, Чонг Хонг Сон