Як створювати скіни DSi/3DS


Для створення скіну TWiLight Menu++ вам знадобиться графічний редактор, здатний експортувати файли .png, 16 BPP .bmp або .png файлів, а також 4 BPP .bmp файлів. В ідеалі, він також повинен мати можливість вручну переставляти палітри зображень. GIMP рекомендується і буде використовуватися для цього посібника, оскільки в ньому є все необхідне.

Частина 1: Завантажити приклади #

Перше, що вам слід зробити - завантажити приклади скінів. Вони можуть бути використані як основа для вашого скіну та вже мають правильний формат, тому, якщо у вас виникнуть проблеми пізніше, ви зможете порівняти їх з цими.

Частина 2: Редагування зображень #

Завантажте та встановіть GIMP

  • Інші графічні редактори, такі як Photoshop, можуть працювати, але в цьому посібнику ми будемо використовувати GIMP

Після встановлення відкрийте GIMP і виберіть Windows -> Dockable Dialogs -> Colormap. Відкриється діалогове вікно “Сolormap”, яке стане у пригоді під час редагування палітрових зображень.

Тепер ви можете відкрити будь-яке зображення, яке хочете відредагувати в GIMP, і перейти до наступного розділу, залежно від того, в якій теці воно знаходиться. Зверніть увагу, що TWiLight Menu++ прискіпливо ставиться до точного формату зображень, і він залежить від того, в якій теці вони знаходяться, тому переконайтеся, що експортуєте, як зазначено в розділі.

Фонові текстури (тека background) #

Це можуть бути PNG-файли або 16-розрядні (A1 R5 G5 B5 або X1 R5 G5 B5) BMP-файли.

  • Якщо ви використовуєте BMP-файли, ви можете встановити для них 16-бітну кодування в Додаткових параметрах під час експорту. Можливо, вам доведеться робити це щоразу, коли ви експортуєте у форматі BMP
Текстури Опис
top Текстура фону верхнього екрана
top_photo Текстура верхнього фону екрана під час показу фотографії
bottom Нижня фонова текстура, коли не наведено курсор на іконку
bottom_ds Для теми 3DS, нижня фонова текстура, коли не наведено вказівник на піктограму на DS Phat/Lite
bottom_macro Для теми 3DS, нижня фонова текстура, коли не наведено вказівник на піктограму на DS Phat/Lite
bottom_bubble Нижня фонова текстура, коли не наведено вказівник на іконку
bottom_bubble_ds Для теми 3DS, нижня фонова текстура, коли не наведено вказівник на піктограму на DS Phat/Lite
bottom_bubble_macro Для теми 3DS, нижня фонова текстура, коли не наведено вказівник на піктограму на DS Phat/Lite
bottom_moving Для теми DSi, нижня фонова текстура при переміщенні піктограми
bottom_moving_macro Для теми 3DS, нижня фонова текстура, коли не наведено вказівник на піктограму на DS Phat/Lite

Фонові текстури (тека background) #

Це мають бути файли у форматі PNG. Прозорість підтримується, однак працюватиме лише 100% прозорість.

Текстури Опис/Примітки
battery0 Блимає з текстурою battery1, коли батарея дуже розряджена
battery1 0-4 використовуються в режимі DSi
battery1purple Фіолетові іконки використовуються, коли Колір LED живлення встановлено на Фіолетовий у налаштуваннях
battery2  
battery2purple  
battery3  
battery3purple  
battery4  
battery4purple  
batterycharge  
batterychargeblink Блимає з batterycharge під час заряджання
batteryfull Використовується в режимі DS на DSi/3DS
batteryfullDS Використовується на DS Phat/DS Lite
batterylow Використовується в режимі DS

Фонові текстури (background folder) #

Це повинні бути 4 BPP (16 кольорів) BMP-файли.

Щоб відредагувати їх у GIMP, виберіть Image -> Mode -> RGB, щоб дозволити зміну кольорів, а потім, коли ви закінчите зміну кольорів, виберіть Image -> Mode -> Indexed..., щоб перетворити назад у палітру. При переході на індексований формат, переконайтеся, що для Generate optimum palette встановлено прапорець і Maximum number of colors встановлена на 16.

Примітка: Деякі зображення в темі DSi мають перевизначення палітри на основі кольору профілю користувача. Якщо ви редагуєте ці кольори, переконайтеся, що опція UserPalette для них у theme.ini має значення 0.

Після перетворення в індексований, перейдіть до діалогового вікна мапи кольорів і переконайтеся, що прозорий колір (#FF00FF) є кольором #0 у мапі кольорів. Якщо це не так, клацніть правою кнопкою миші на колірній карті та виберіть Rearrange Colormap... потім перемістіть прозорий колір, щоб він став першим кольором у колірній карті, та виберіть ОК.

Якщо у вашій остаточній колірній карті менш як 16 кольорів, натискайте кнопки + внизу діалогового вікна колірної карти, доки не отримаєте 16 кольорів.

Під час експорту рекомендується встановити прапорець Do not write color space information у списку Compatibility Options.

Текстури Опис
bips Точки, що блимають, які відображаються внизу смуги прокрутки (тема DSi)
box Текстура коробки, що містить як повні, так і порожні текстури (Тема DSi)
box_empty Текстура, що відображається для порожньої коробки (Тема 3DS)
box_full Текстура, що відображається для порожньої коробки (Тема 3DS)
brace Текстура дужок, показана за першою та останньою піктограмою (Тема DSi)
bubble Нижній біт бульбашки, що накладається на початкову межу або поле піктограми
button_arrow Текстури для стрілок з обох боків нижньої смуги прокрутки (тема DSi)
cornerbutton Кнопки, які показуються в меню SELECT (Тема DSi) (Назва базується за старим вживанням)
cursor Межа з анімацією, яка вкаже на вибрану іконку (тема 3DS)
dialogbox Тло діалогового вікна, що зсувається вниз
folder Піктограма для тек
icon_a26 Іконка для ігор Atari 2600
icon_col Іконка для ігор Colecovision
icon_gb The icon for Game Boy games
icon_gba The icon for GBA games
icon_gbamode The icon for native GBA Mode
icon_gg The icon for Game Gear games
icon_img The icon for BMP, GIF, and PNG images
icon_int The icon for Intellivision games
icon_m5 The icon for Sord M5 games
icon_manual The icon for the manual
icon_md The icon for Mega Drive games
icon_nes The icon for NES games
icon_ngp The icon for Neo Geo Pocket games
icon_pce The icon for PC Engine/TurboGrafx-16 games
icon_plg The icon for DSTWO plugins
icon_settings The icon for Nintendo DSi Settings
icon_sg The icon for Sega SG-1000 games
icon_sms The icon for Sega Master System games
icon_snes The icon for SNES games
icon_unk The icon displayed when a game is missing an icon
icon_ws The icon for WonderSwan games
launch_dot The dots displayed when a game is launched (DSi Theme)
moving_arrow The arrow displayed when a game is being moved (DSi Theme)
progress The progress loading animation with 8 frames
scroll_window The part of the scrollbar that indicates the icons that are in view
small_cart The icons displayed along the top (3DS Theme) and in the SELECT menu (DSi Theme)
start_border The border with animation frames that indicates the selected icon (DSi Theme)
start_text The text displayed on the start border (DSi Theme)
wirelessicons The icons displayed to indicate a game has wireless support

DS Classic Menu textures (quickmenu folder) #

These must be PNG files.

Текстури Опис
bottombg Background for the bottom screen
phat_topbg Background for the top screen on DS Phat
topbg Background for the top screen on any other DS model

UI textures (ui folder) #

These must be PNG files. Прозорість підтримується, однак працюватиме лише 100% прозорість. Any pixel that is transparent in one texture should be transparent in all of them, so that it’s properly overwritten on change.

Текстури Опис
Lshoulder The left shoulder
Lshoulder_greyed The left shoulder when there are no pages to the left
Lshoulder_photo The left shoulder when there is a photo being shown
Lshoulder_photo_greyed The left shoulder with no pages to the left and a photo showing
Rshoulder The right shoulder
Rshoulder_greyed The right shoulder when there are no pages to the right
Rshoulder_photo The right shoulder when there is a photo being shown
Rshoulder_photo_greyed The right shoulder with no pages to the left and a photo showing

Video texture (video folder) #

Only used for the 3DS theme, 3dsRotatingCubes.rvid is a Rocket Video file. For more information on converting videos to rvid, read Converting a video to .rvid on the Vid2RVID wiki. If you don’t want this to be drawn you can simply delete it.

Volume textures (volume folder) #

Volume textures are only displayed in DSi Mode.

These must be PNG files. Прозорість підтримується, однак працюватиме лише 100% прозорість.

Текстури Опис/Примітки
volume0 0 is muted, 4 is full volume
volume1  
volume2  
volume3  
volume4  

Theme configuration (theme.ini file) #

You may configure various options on how the theme is drawn in the theme.ini to accommodate larger graphics or different layouts. For true/false options, 0 is false, and 1 is true. Options with a blank default value for a theme are unused in that theme.

Value Опис/Примітки Default (3DS) Default (DSi)
StartBorderRenderY The initial Y position of the Start Border 92 81
StartBorderSpriteW The width of the start border sprite. Note that the start border texture is exactly half of the full border 32 32
StartBorderSpriteH The height of the start border sprite 64 80
StartTextRenderY The initial Y position of the Start text 143 143
BubbleTipRenderX The X position of the tip of the bubble that is drawn over the start border 125 122
BubbleTipRenderY The Y position of the tip of the bubble that is drawn over the start border 98 80
BubbleTipSpriteW The width of the bubble tip sprite 7 11
BubbleTipSpriteH The height of the bubble tip sprite 7 8
TitleboxRenderY The initial Y position of the title text box 96 85
TitleboxTextY The initial Y position of the title text 55 30
TitleboxTextW The maximum width of the title text 200 240
TitleboxTextLarge Whether to use the large font for the title text 0 1
TitleboxMaxLines The maximum lines of text to show of the title 3 4
VolumeRenderX The X position on the top screen to draw the volume icon 4 4
VolumeRenderY The Y position on the top screen to draw the volume icon 5 5
ShoulderLRenderX The X position on the top screen to draw the left shoulder 0 0
ShoulderLRenderY The Y position on the top screen to draw the left shoulder 172 172
ShoulderRRenderX The X position on the top screen to draw the right shoulder 178 178
ShoulderRRenderY The Y position on the top screen to draw the right shoulder 172 172
BatteryRenderX The X position on the top screen to draw the battery icon 235 235
BatteryRenderY The Y position on the top screen to draw the battery icon 5 5
UsernameRenderX The X position on the top screen to draw the username text 28 28
UsernameRenderY The Y position on the top screen to draw the username text 15 15
UsernameRenderXDS The X position on the top screen to draw the username text, when on a DS Phat/Lite 4 4
DateRenderX The X postion on the top screen to draw the date text 162 162
DateRenderY The Y postion on the top screen to draw the date text 7 7
TimeRenderX The X positon on the top screen to draw the time text 200 200
TimeRenderY The Y positon on the top screen to draw the time text 7 7
PurpleBatteryAvailable Whether or not to use the purple battery icons when Power LED color is set to Purple in settings 1 1
FontPalette1 The transparent color of the font, unused for default fonts 0x0000 0x0000
FontPalette2 The colors of the font, use this site to convert 0xDEF7 0xDEF7
FontPalette3   0xC631 0xC631
FontPalette4   0xA108 0xA108
FontPaletteDateTime1 The override transparent color of the font for the date and time 0x0000 0x0000
FontPaletteDateTime2 The override color of the font for the date and time 0xDEF7 0xA529
FontPaletteDateTime3   0xC631 0xBDEF
FontPaletteDateTime4   0xA108 0xD6B5
FontPaletteTitlebox1 The override transparent color of the font for the ROM title box 0x0000 0x0000
FontPaletteTitlebox2 The override color of the font for the ROM title box 0xDEF7 0xDEF7
FontPaletteTitlebox3   0xC631 0xC631
FontPaletteTitlebox4   0xA108 0xA108
FontPaletteDialog1 The override transparent color of the font for dialogs 0x0000 0x0000
FontPaletteDialog2 The override color of the font for dialogs 0xDEF7 0xDEF7
FontPaletteDialog3   0xC631 0xC631
FontPaletteDialog4   0xA108 0xA108
FontPaletteOverlay1 The override transparent color of the font for overlayed text 0x0000 0x0000
FontPaletteOverlay2 The override color of the font for overlayed text 0xDEF7 0xDEF7
FontPaletteOverlay3   0xC631 0xC631
FontPaletteOverlay4   0xA108 0xA108
FontPaletteUsername1 The override transparent color of the font for the username 0x0000 0x0000
FontPaletteUsername2 The override color of the font for the username 0xDEF7 0xDEF7
FontPaletteUsername3   0xC631 0xC631
FontPaletteUsername4   0xA108 0xA108
BipsUserPalette Whether or not to use the DS Profile color for the palette of the bips on the scrollbar   0
BoxUserPalette Whether or not to use the DS Profile color for the palette of the boxes containing the game icons in the DSi Theme   0
BoxEmptyUserPalette Whether or not to use the DS Profile color for the palette of empty boxes in the 3DS Theme 0  
BoxFullUserPalette Whether or not to use the DS Profile color for the palette of the boxes containing the game icons in the 3DS Theme 0  
BraceUserPalette Whether or not to use the DS Profile color for the palette of the brace at the start and end of the game list   0
BubbleUserPalette Whether or not to use the DS Profile color for the palette of the tip of the title bubble 0 0
ButtonArrowUserPalette Whether or not to use the DS Profile color for the palette of the arrow buttons on the bottom of the screen   1
CornerButtonUserPalette Whether or not to use the DS Profile color for the palette of the DSi Menu and Settings icons in the SELECT menu   0
CursorUserPalette Whether or not to use the DS Profile color for the palette of the cursor 0  
DialogBoxUserPalette Whether or not to use the DS Profile color for the palette of the dialog box 0 1
FolderUserPalette Whether or not to use the DS Profile color for the palette of folders 0 0
LaunchDotsUserPalette Whether or not to use the DS Profile color for the palette of the launch dots   1
MovingArrowUserPalette Whether or not to use the DS Profile color for the palette of the arrow shown when moving icons   1
ProgressUserPalette Whether or not to use the DS Profile color for the palette of the loading progress spinner 1 1
ScrollWindowUserPalette Whether or not to use the DS Profile color for the palette of the background to the scroll window on the scrollbar   0
SmallCartUserPalette Whether or not to use the DS Profile color for the palette of the cartridge icons 0 0
StartBorderUserPalette Whether or not to use the DS Profile color for the palette of the start border   1
StartTextUserPalette Whether or not to use the DS Profile color for the palette of the start text   1
WirelessIconsUserPalette Whether or not to use the DS Profile color for the palette of the wireless icons 0 0
IconA26UserPalette Whether or not to use the DS Profile color for the palette of the Atari 2600 icon 0 0
IconCOLUserPalette Whether or not to use the DS Profile color for the palette of the ColecoVision icon 0 0
IconGBUserPalette Whether or not to use the DS Profile color for the palette of the Game Boy icon 0 0
IconGBAUserPalette Whether or not to use the DS Profile color for the palette of the Game Boy Advance icon 0 0
IconGBAModeUserPalette Whether or not to use the DS Profile color for the palette of the native GBA Mode icon 0 0
IconGGUserPalette Whether or not to use the DS Profile color for the palette of the Game Gear icon 0 0
IconIMGUserPalette Whether or not to use the DS Profile color for the palette of the image icon 0 0
IconINTUserPalette Whether or not to use the DS Profile color for the palette of the Intellivision icon 0 0
IconM5UserPalette Whether or not to use the DS Profile color for the palette of the Sord M5 icon 0 0
IconManualUserPalette Whether or not to use the DS Profile color for the palette of the manual icon 0 0
IconMDUserPalette Whether or not to use the DS Profile color for the palette of the Genesis/Mega Drive icon 0 0
IconNESUserPalette Whether or not to use the DS Profile color for the palette of the NES/Famicom icon 0 0
IconNGPUserPalette Whether or not to use the DS Profile color for the palette of the Neo Geo Pocket icon 0 0
IconPCEUserPalette Whether or not to use the DS Profile color for the palette of the PC Engine/TurboGrafx-16 icon 0 0
IconPLGUserPalette Whether or not to use the DS Profile color for the palette of the DSTWO plugin icon 0 0
IconSettingsUserPalette Whether or not to use the DS Profile color for the palette of the DSi Settings icon 0 0
IconSGUserPalette Whether or not to use the DS Profile color for the palette of the SG-1000 icon 0 0
IconSMSUserPalette Whether or not to use the DS Profile color for the palette of the Master System icon 0 0
IconSNESUserPalette Whether or not to use the DS Profile color for the palette of the SNES icon 0 0
IconUnknownUserPalette Whether or not to use the DS Profile color for the palette of the unknown (missing) icon 0 0
IconWSUserPalette Whether or not to use the DS Profile color for the palette of the WonderSwan icon 0 0
UsernameUserPalette Whether or not to use the DS Profile color for the palette of the username 1 1
ProgressBarUserPalette Whether or not to use the DS Profile color as the color of the progress bar 1 1
ProgressBarColor The color of the progress bar if ProgressBarUserPalette is disabled 0x7C00 0x7C00
UseAlphaBlend Whether or not to blend the colors of the top screen text (the date/time and username) with the colors of the background 1 1
DarkLoading Whether or not to fade to black instead of white during loading screens 0 0
RenderPhoto Whether or not to draw a photo on the top screen 0 1
RotatingCubesRenderY The Y position on the top screen to draw the rotating cubes 78  
PlayStartupJingle Whether or not to use the startup sound before the main BGM. See the custom SFX page for more information 1 0
StartupJingleDelayAdjust The amount of samples early in the startup sound the BGM should start at 0 0

Параметри режиму Macro #

Ви можете додати певні параметри перевизначення до файлу theme.ini для використання у режимі Macro. Для цього додайте [MACRO] в порожній рядок внизу конфігураційного файлу, а потім додайте будь-які вказані конфігурації під ним.

Спеціальна фонова музика та звукові ефекти #

Теми DSi та 3DS також підтримують користувацьку музику. Подивіться DSi/3DS скіни - Користувацькі ефекти для більш детальної інформації.

Користувацькі шрифти #

Ви можете покласти Користувацькі шрифти до теки font для використання у скіні. Ви також можете додати перевизначення шрифтів для дати & часу за допомогою date_time.nftr, та імені користувача консолі за допомогою username.nftr.

Користувацькі палітри #

Для палітрових текстур (тека grf) ви можете додатково додати набори палітр, які використовуються, коли увімкнено відповідний параметр UserPalette. Файли наборів палітр можна створювати за допомогою цього редактора. Використовуючи редактор, імпортуйте зображення, з яким ви хочете працювати, а потім створіть палітру для кожного з 16 кольорів профілю DS. Ви можете використати цей приклад файлу палітри як початкову точку.

16 рядів колекції палітри відповідають кожному кольору профілю та повинні бути в наступному порядку:

  1. Сіро-блакитний
  2. Коричневий
  3. Червоний
  4. Рожевий
  5. Помаранчевий
  6. Жовтий
  7. Світло-зелений
  8. Зелений
  9. Темно-зелений
  10. Бірюзовий
  11. Блакитний/Світло-блакитний
  12. Синій
  13. Темно-синій/Індиго
  14. Фіалковий/Темно-фіолетовий
  15. Фіолетовий
  16. Пурпуровий

Створивши файл палітри, помістіть його до теки palettes. Ім’я файлу палітри має збігатися з ім’ям її зображення, але з розширенням .bin (наприклад, start_border.bin буде застосовано до start_border.bmp).

Ви також можете додати файл палітри username.bin для зміни палітри шрифту імені користувача. Під час створення цього файлу обов’язково встановіть у редакторі палітри Font Mode.

Частина 3: Додавання до TWiLight Menu++ #

Після того, як ви відредагували текстури та хочете протестувати свою скіну, просто скопіюйте папку зі своєю скіною (теку, що містить background, battery тощо) до sd:/_nds/TWiLightMenu/3dsmenu/themes/ або sd:/_nds/TWiLightMenu/dsimenu/themes/ для скінів тем для 3DS/DSi відповідно.

Частина 4: Поширення свого скіну #

Завершивши роботу над скіном, ви можете поділитися ним зі спільнотою, створивши запит щодо додавання скіну до репозиторію DS-Homebrew/twlmenu-extras GitHub у вигляді файлу .7z. Якщо ви не знайомі з git’ом, ви також можете просто створити питання в цьому репозиторії з zip файлом вашого скіна з проханням про його додавання.