TWiLight Menu++는 Nintendo DSi, Nintendo 3DS 및 Nintendo DS 플래시카드를 위한 오픈 소스 DSi 메뉴 업그레이드/교체입니다. 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 ROM 및 DSTWO 플러그인(DSTWO를 사용하는 경우).
이 앱을 컴파일하려면 devkitPro의 devkitARM, libnds, grit 및 mmutil이 필요합니다. 이는 다음 명령과 함께 devkitPro pacman을 사용하여 설치할 수 있습니다:
sudo dkp-pacman -S nds-dev
(참고: 명령은 OS에 따라 다르며, sudo가 필요하지 않을 수도 있고 대신 pacman
만 사용할 수도 있습니다.)
저장소에는 하위 모듈이 포함되어 있으므로 재귀적으로 복제해야 합니다.
git clone --recursive https://github.com/DS-Homebrew/TWiLightMenu.git
하위 모듈을 가져오지 않고 복제한 경우 나중에 업데이트할 수 있습니다.
git submodule update --init --recursive
devkitPro의 툴체인이 설치되면 저장소 루트에서 make package
실행하여 TWiLight Menu++ 전체를 빌드할 수 있습니다. TWiLight Menu++의 특정 부분만 빌드하려면 해당 폴더로 cd
하여 make dist
실행할 수 있습니다.
빌드가 완료되면 출력 파일은 공식 TWiLightMenu.7z
빌드와 동일한 디렉토리 구조를 따르는 7zfile
폴더에 있게 됩니다.
포함된 Docker 이미지를 사용하면 제공된 PowerShell( .ps1
) 스크립트를 사용하여 필요한 devkitARM 버전을 수동으로 설정할 필요 없이 TWiLight Menu++를 쉽게 컴파일할 수 있습니다.
스크립트는 make
인수도 허용합니다. 예를 들어 .compile_docker.ps1 clean
모든 컴파일된 코드의 디렉터리를 정리합니다. 모든 아티팩트를 빌드하려면 .compile_docker.ps1 package
실행하세요.
Docker 컴파일은 Windows의 기본 컴파일과 호환되지 않습니다. Docker로 빌드를 시도하기 전에 .compile_docker.ps1 clean
실행하여 아티팩트를 정리해야 합니다. 드라이브 공유를 요청하는 알림이 나타나면 Docker가 Windows에서 작동하도록 드라이브 공유를 활성화하도록 선택해야 합니다.
매뉴얼 페이지는 별도의 저장소에 저장되며 TWiLight Menu++를 빌드할 때 릴리스에서 다운로드됩니다. 자세한 내용은 twilight-manual 저장소를 참조하세요.
TWiLight Menu++는 모두 함께 작동하여 DSi 메뉴 대체를 생성하는 여러 "하위 프로젝트"로 구성됩니다. 저장소에 있는 대부분의 하위 폴더에는 xxx.nds
파일을 컴파일하는 자체 코드가 포함되어 있습니다. 이 코드는 일반적으로 7z
파일(또는 7zfile
폴더) 내의 /_nds/TWiLightMenu/xxx.srldr
에 복사됩니다.
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
manual : TWiLight Menu++ 사용 설명서
/_nds/TWiLightMenu/manual.srldr
생성합니다.
Quickmenu : DS Lite 메뉴, 오래된 클래식 UI
/_nds/TWiLightMenu/mainmenu.srldr
생성합니다.
resources : 불법 복제 방지 패치와 와이드스크린 패치를 패키지 파일에 병합합니다.
/_nds/TWiLightMenu/extras/apfix.pck
및 /_nds/TWiLightMenu/extras/widescreen.pck
romsel_aktheme : Wood UI 테마 메뉴
/_nds/TWiLightMenu/akmenu.srldr
생성합니다.
romsel_dsimenutheme : "Nintendo DSi", "Nintendo 3DS", "SEGA Saturn" 및 "Homebrew Launcher"에서 사용되는 DSi 테마용 메뉴
/_nds/TWiLightMenu/dsimenu.srldr
생성합니다.
romsel_r4theme : "R4 Original" 및 "Gameboy Color"에서 사용되는 R4 테마 메뉴
/_nds/TWiLightMenu/r4menu.srldr
생성합니다.
설정 : 설정 메뉴
/_nds/TWiLightMenu/settings.srldr
생성합니다.
슬롯1런치 :
/_nds/TWiLightMenu/slot1launch.srldr
생성합니다.
제목 : 부팅 시작 화면(기본적으로 Nintendo 로고)
/_nds/TWiLightMenu/main.srldr
생성합니다.
Crowdin 프로젝트에서 TWiLight Menu++ 번역을 도울 수 있습니다. 새로운 언어 추가를 요청하려면 Discord 서버에 요청하세요.
Rocket Robz: 수석 개발자
chyyran: akMenu/Wood UI를 TWiLight Menu++로 포팅하고 DSi/3DS 테마용 SD 카드에서 하위 테마를 로드하는 기능 추가
Pk11: R4 테마에 대해 SD 카드에서 스킨을 로드하는 기능 추가, 정렬 구현 및 매뉴얼에서 PNG 사용, 향상된 글꼴 렌더링, Unlaunch를 위한 사용자 정의 배경 제공, 번역 관리 및 다양한 버그 수정
DieGo: 사용자 정의 ROM/폴더 아이콘에 대한 지원 추가 및 사용자 정의 스킨 개선
lifehackerhansol: 플래시카드 자동 부팅 및 커널 로딩에 대한 지원 개선, 32KB DLDI 드라이버 지원을 위한 libnds32 포크
NightScript: 코드 정리, 코드 표준 정의, Wood UI 테마를 위한 플래시카드 기능 추가, 매뉴얼 페이지
ahezard, Shutterbug2000 및 Rocket Robz: nds-bootstrap(SD 카드에서 Nintendo DS(i) ROM을 실행하는 데 사용됨)
Alekmaul: AmeDS(Amstrad CPC ROM 실행에 사용됨)
Alekmaul 및 wavemotion: StellaDS, A5200DS, A7800DS, A8DS(Atari 2600/5200/7800/XEGS ROM 실행에 사용) 및 ColecoDS(ColecoVision, MSX, Sord M5 및 Sega SG-1000/SC-3000 ROM 실행에 사용)
Archiede: SNEmulDS(SNES ROM을 실행하는 데 사용됨)
코토: SNEmulDS 리바이벌
chishm: tuna-viDS (Xvid 비디오 재생에 사용됨)
Drenne: GameYob(Gameboy ROM 실행에 사용됨)
FluBBaOfWard: S8DS(Sega Master System, Game Gear, SG-1000/SG-3000 및 ColecoVision ROM 실행에 사용), NitroGrafx(PC 엔진/TurboGrafx-16 ROM 실행에 사용), NitroSwan(WonderSwan ROM 실행에 사용), 및 NGPDS(네오 지오 포켓 ROM 실행에 사용됨)
FluBBaOfWard, Coto 및 Loopy: nesDS(NES ROM 실행에 사용됨)
Apache Thunder: nesDS의 TWL 에디션
Gericom: FastVideoDSPlayer(FastVideoDS 비디오 실행에 사용) 및 GBARunner2(DS Phat/Lite의 GBA 모드 외부에서 GameBoy Advance ROM 실행에 사용)
therealteamplayer: DSi/3DS용으로 포함된 GBARunner2의 Hicode+DSP 병합 빌드
unresolvedsymbol: 플래시 카드에서 Pokémon: Emerald 버전을 플레이하기 위해 포함된 GBARunner2의 rom3M+master "DSL 강화" 빌드
Lordus: jEnesisDS(Sega Mega Drive/Genesis ROM 실행에 사용됨)
xonn83: jEnesisDS의 GBMacro 버전
redbug26: CrocoDS(Amstrad CPC ROM 실행에 사용됨)
Ryan FB, Rocket Robz 및 xonn83: PicoDriveTWL(대형 Sega Mega Drive/Genesis ROM 실행에 사용됨)
wavemotion: Nintellivision/NINTV-DS(Intellivision ROM 실행에 사용됨)
부재현실: Intellivision 아이콘
davi: GBC 테마의 테두리(원래 GameYob용)
fall0verflow, Fluto 및 Arkhandar: Homebrew 채널/런처 그래픽
FlameKat53: DSi 테마의 SELECT
메뉴에 대한 수동 아이콘
Mr. Start: Super Nintendo DS 스플래시 화면
PW5190: Kirby 테마의 TWLMenu++ 스플래시 화면
Spinal_cord: DSi4DS 및 DSision2 그래픽
StarvingArtist: 게임 콘솔 아이콘
BlastoiseVeteran: Nintendo DSi Shop 음악의 리마스터 버전
IkaMusumeYiyaRoxie: 일반 N64 MIDI 사운드폰트, 이전 버전의 타이틀 스플래시 팡파르에 사용됨
dbry: adpcm-xq의 Xtreme Quality IMA-ADPCM 디코더 코드입니다.
Firexploit: 3DS 테마를 위한 3DS UI 사운드. 일부는 DSi 테마에서도 사용됩니다.
ahezard: nds-bootstrap의 NDMA 코드
또 다른 세계 및 노란 나무 고블린: 오리지널 akMenu/Wood UI
Arisotura: melonDS의 ROM 목록 및 dsibiosdumper의 BIOS 덤퍼 코드
Dartz150: Iridion II 및 Top Gun: Combat Zones GBA 게임에 대한 수정 사항 제공
devkitPro: nds-hb-menu에 사용되는 코드 및 부트로더, devkitARM, libnds 및 libfat 사용
edo9300: DS Phat 확인 코드
Gericom, TrolleyDave 및 FAST6191: gbapatcher에 사용되는 GBA SRAM 패치 코드(GBAtemp의 SRAM 패치 스레드)
Gericom & profi200: GBARunner3에서 사용되는 GBA 색상 보정 코드
Nikokaro: WarioWare: Twisted에 대한 기울기 없는 패치를 찾았습니다! , 요시 Topsy-Turvy . (GBAtemp 스레드)
profi200: fastboot3DS의 향상된 SD 코드
RadDude McCoolguy, fintogive, KazoWAR, Vague Rant, gamemasterplc, Rocket Robz, ChampionLeake, DeadSkullzJr, Spellboundtriangle, LedyBacer: 와이드스크린 치트
Retrogamefan 및 Rudolph: nds-bootstrap용 AP 패치 포함
enler: DS⁽ⁱ⁾ 모드 호환성을 위한 Pokemon Black 2(일본)의 AP 패치 수정
Rocket Robz: DS⁽ⁱ⁾ 모드 호환성을 위한 일부 DS⁽ⁱ⁾ 강화 게임 AP 패치 수정
SNBeast: 패치 출시
Taiju Yamada: R4i-SDHC 부팅 파일 보호를 우회하는 데 사용되는 코드
아랍어: 켄 브라운, SLG3
불가리아어: Peter0x44, Tescu
카탈로니아 사람:
중국어 간체: cai_miao, Chris, Forbidden, James-Makoto, R-YaTian, Yukino Song, 曾國立, 天天地地人人, 百地 希留耶
중국어 번체: cai_miao, ccccchoho, James-Makoto, Rintim, 奇诺比奥
체코어: Štěpán Dolský
덴마크어: jonata, Michael Millet, Nadia Pedersen
네덜란드어: Arthur, guusbuk, Mikosu, Minionguyjpro, Xtremegamer007
프랑스어: Arcky, cooolgamer, Dhalian, maximesharp, Ghost0159, Léo, LinuxCat, Martinez, NightScript, SLG3, SombrAbsol, TM-47, Yolopix
독일어: ariebe9115, Blurry Knight, Christian Schuhmann, Dubsenbert Reaches, Fırat Tay, hehe, İlke Hür Eyiol, Julian, Kazuto, Malekairmaroc7, Michael Brey, Oleh Hatsenko, SkillLP, SuperSaiyajinStackZ, Tcm0, TheDude, TM-47, Uriki
그리스어: Anestis1403
히브리어: Barawer, Yaniv Levin
헝가리어: 빅토르 바르가(Viktor Varga), 하트빙 -- 하트
인도네시아어: Cyruz Wings, Farid Irwan, heydootdoot, Shiori
이탈리아어: Alessandro Tavolieri, Leonardo Ledda, Mattia, TM-47, Vendicatorealato, xavimel
일본어: Chromaryu, inucat, Pk11, kuragehime, rinrinrin2002, Rintim, Ronny Chan, Uriki
한국어: DDinghoya, lifehackerhansol, I'm Not Cry, Myebyeol_NOTE, Oleh Hatsenko, 그그기그
노르웨이어: 무효화된 블록
폴란드어: Avginike, gierkowiec tv, Kipi000, Konrad Borowski, MaksCROWDIN0, Mateusz Tobiasz, Michał Słonina, RedstonekPL, TheCasachii
포르투갈어(브라질): César Memère, Jeff Sousa, themasterf, Victor Coronado
포르투갈어(포르투갈): bruwyvn, Christopher Rodrigues, Gabz Almeida, jim, Joyrv, leteka 1234, Rodrigo Tavares, Tiago Silva, Wodson de Andrade, Wodson de Andrade, Zak
루마니아어: Tescu
러시아어: Alexey Barsukov, Ckau, manwithnoface, mbhz, MMR Marler, Nikita, Молодая Кукуруза
류큐 : 쿠라게히메
스페인어: Adrin Ramen, Adrian Rodriguez, Allinxter, beta215, ccccmark, dimateos, Kaede159, KplyAsteroid, mschifino, Nicolás Herrera Concha, Nintendo R, nuxa17, Radriant, SofyUchiha, TM-47, Uriki, XxPhoenix1996xX
스웨덴어: Max Hambraeus, Nullified Block, TM-47, Victor Ahlin, Walter Lindell
터키어: Alp, Egehan.TWL, Emir, GlideGuy06, Grandmaquil, imbeegboi22, İlke Hür Eyiol, rewix32, rewold20, Yağmur Celep
우크라이나어: Oleh Hatsenko, Mykola Pukhalskyi, TM-47, вухаста гітара
발렌시아어: 촐로
베트남어: Chử Tiến Bình, daicahuyoi Do Minh Hiếu, hotungkhanh, Trong Hồng Sòn