--- lang: it-IT layout: wiki section: twilightmenu category: customization title: Come creare skin per DSi/3DS description: Come creare skin DSi e 3DS personalizzate per TWiLight Menu++ --- To make a TWiLight Menu++ skin, you will need an image editor capable of exporting `.png` files, 16 BPP `.bmp` files or `.png` files, and 4 BPP `.bmp` files. Ideally, it should also be able to manually rearrange image palettes. [GIMP](https://www.gimp.org) is recommended and will be used for this guide, as it's capable of everything needed. ## Parte 1: Scarica gli esempi La prima cosa da fare è scaricare le [skin di esempio](/assets/files/skin-examples.zip). These can be used as a base for your skin and are already in the correct format, so if you have issues later on, you can compare with these. ## Parte 2: Modifica delle immagini Download and install [GIMP](https://www.gimp.org) - Other image editors such as Photoshop may work, but GIMP is what will be used in this guide Una volta installato, apri GIMP e seleziona `Windows` -> `Dockable Dialogs` -> `Colormap`. Apre la finestra di dialogo della mappa dei colori, utile per la modifica delle immagini con palette. A questo punto è possibile aprire l'immagine che si desidera modificare in GIMP e proseguire con la sezione sottostante in base alla cartella in cui si trova. Nota bene che TWiLight Menu++ è esigente per quanto riguarda il formato esatto delle immagini e varia a seconda della cartella in cui si trovano, quindi assicurati di esportarle come indicato nella sezione. ### Texture di sfondo (cartella `background`) Possono essere file PNG o file BMP a 16 bit (`A1 R5 G5 B5` o `X1 R5 G5 B5`). - If using BMP files, you can set them to 16-bit under Advanced Options while exporting. You may need to do this each time you export as BMP | Texture | Descrizione | | --------------------- | ------------------------------------------------------------------------------------------------------ | | top | The top screen background texture | | bottom | The bottom background texture when not hovering over an icon | | bottom_ds | For the 3DS theme, the bottom background texture when not hovering over an icon when on a DS Phat/Lite | | bottom_macro | For the DSi theme, the background texture when not hovering over an icon while using Macro Mode | | bottom_bubble | The bottom background texture when hovering over an icon | | bottom_bubble_ds | For the 3DS theme, the bottom background texture when hovering over an icon when on a DS Phat/Lite | | bottom_bubble_macro | For the DSi theme, the background texture when hovering over an icon while using Macro Mode | | bottom_moving | For the DSi theme, the bottom background texture when moving an icon | | bottom_moving_macro | For the DSi theme, the background texture when moving an icon while using Maco Mode | ### Texture della batteria (cartella `battery`) Devono essere file PNG. Transparency is supported, however only 100% transparency will work. | Texture | Description/Notes | | ------------------ | --------------------------------------------------------------------------------------------------------- | | battery0 | Lampeggia con `battery1` quando la batteria è quasi scarica | | battery1 | 0-4 sono utilizzate in modalità DSi | | battery1purple | Le icone viola vengono utilizzate quando `Colore LED batteria` è impostato su `Viola` nelle impostazioni. | | battery2 | | | battery2purple | | | battery3 | | | battery3purple | | | battery4 | | | battery4purple | | | batterycharge | | | batterychargeblink | Lampeggia con `batterycharge` durante la ricarica | | batteryfull | Utilizzata in modalità DS su DSi/3DS | | batteryfullDS | Utilizzata su DS Phat/DS Lite | | batterylow | Utilizzata in modalità DS | ### Texture della palette (cartella `grf`) Devono esserci 4 file BPP (16 colori) BMP. To edit these in GIMP, select `Image` -> `Mode` -> `RGB` to allow changing colors, then when done changing colors, select `Image` -> `Mode` -> `Indexed...` to convert back to paletted. Quando si passa all'indicizzazione, assicurartiche `Generate optimum palette` sia selezionato e `Maximum number of colors` sia impostato su `16`. **Nota:** Alcune immagini nel tema DSi hanno le palette sovrascritte in base al colore del profilo dell'utente. Se modifichi i colori di questi, assicurarsi che l'opzione `UserPalette` nel file `theme.ini` sia impostata su `0`. Dopo la conversione in indicizzato, accedi alla finestra di dialogo della mappa dei colori e assicurati che il colore trasparente (#FF00FF) sia il colore #0 nella mappa dei colori. In caso contrario, clicca con il pulsante destro del mouse sulla mappa dei colori e seleziona `Rearrange Colormap...` quindi sposta il colore trasparente in modo che sia il primo colore della mappa dei colori e seleziona `OK`. If there are fewer than 16 colors in your final colormap, press the `+` button at the bottom of the colormap dialog until you have 16 colors. When exporting, it's recommended to check the `Do not write color space information` box under the `Compatibility Options` dropdown. | Texture | Descrizione | | ------------- | ----------------------------------------------------------------------------------------------------------- | | bips | I puntini visualizzati in fondo alla barra di scorrimento (tema DSi) | | box | La texture della casella, contenente texture piene e vuote (tema DSi) | | box_empty | La texture mostrata per la casella vuota (tema 3DS) | | box_full | La texture mostrata per una casella con un'icona (tema 3DS) | | brace | La texture mostrata dopo la prima e l'ultima icona (tema DSi) | | bubble | La parte inferiore della bolla che viene disegnata o sopra il bordo iniziale o sopra la casella delle icone | | button_arrow | Le texture per le frecce ai lati della barra di scorrimento inferiore (tema DSi) | | cornerbutton | I pulsanti mostrati nel menu SELECT (tema DSi) (Il nome origina da un vecchio utilizzo del menu) | | cursor | Il bordo con i frame d'animazione indica l'icona selezionata (tema 3DS) | | dialogbox | Lo sfondo della finestra di dialogo che scorre verso il basso | | folder | L'icona delle cartelle | | icon_a26 | L'icona dei giochi Atari 2600 | | icon_col | The icon for Colecovision games | | 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 | ### Texture del Menu DS Classico (cartella `quickmenu`) Devono essere file PNG. | Texture | Descrizione | | ---------- | ------------------------------------------------------------- | | bottombg | Sfondo per lo schermo inferiore | | phat_topbg | Sfondo per lo schermo superiore su DS Phat | | topbg | Sfondo per lo schermo superiore di qualsiasi altro modello DS | ### Texture dell'IU (cartella `ui`) Devono essere file PNG. Transparency is supported, however only 100% transparency will work. Any pixel that is transparent in one texture should be transparent in all of them, so that it's properly overwritten on change. | Texture | Descrizione | | ---------------- | ------------------------------------------------------- | | Lshoulder | The left shoulder | | Lshoulder_greyed | The left shoulder when there are no pages to the left | | Rshoulder | The right shoulder | | Rshoulder_greyed | The right shoulder when there are no pages to the right | ### Texture video (cartella `video`) Utilizzate solo per il tema 3DS, `3dsRotatingCubes.rvid` è un file Rocket Video. Per ulteriori informazioni su come convertire i video in rvid, leggi [Converting a video to .rvid](https://github.com/RocketRobz/Vid2RVID/wiki/Converting-a-video-to-.rvid) sulla wiki Vid2RVID. Se non vuoi che venga mostrato, è sufficiente cancellarlo. ### Texture del volume (cartella `volume`) Volume textures are only displayed in DSi Mode. Devono essere file PNG. Transparency is supported, however only 100% transparency will work. | Texture | Description/Notes | | ------- | ---------------------------- | | volume0 | 0 is muted, 4 is full volume | | volume1 | | | volume2 | | | volume3 | | | volume4 | | ## Configurazione del tema (file `theme.ini`) 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. | Valore | Description/Notes | Predefinite (3DS) | Predefinite (DSi) | | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ----------------- | ----------------- | | `StartBorderRenderY` | La posizione Y iniziale del bordo iniziale | 92 | 81 | | `StartBorderSpriteW` | La larghezza dello sprite del bordo iniziale. Note that the start border texture is exactly half of the full border | 32 | 32 | | `StartBorderSpriteH` | L'altezza dello sprite del bordo iniziale | 64 | 80 | | `StartTextRenderY` | La posizione Y iniziale del testo di avvio | 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` | La larghezza dello sprite della punta della bolla | 7 | 11 | | `BubbleTipSpriteH` | L'altezza dello sprite della punta della bolla | 7 | 8 | | `TitleboxRenderY` | La posizione Y iniziale della casella del testo del titolo | 96 | 85 | | `TitleboxTextY` | La posizione Y iniziale del testo del titolo | 55 | 30 | | `TitleboxTextW` | Larghezza massima del testo del titolo | 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](http://www.conradshome.com/html2bgr15/) 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 | | `StartTextUserPalette` | Whether or not to use the DS Profile color for the palette of the start text | | 1 | | `StartBorderUserPalette` | Whether or not to use the DS Profile color for the palette of the start border | | 1 | | `ButtonArrowUserPalette` | Whether or not to use the DS Profile color for the palette of the arrow buttons on the bottom of the screen | | 1 | | `MovingArrowUserPalette` | Whether or not to use the DS Profile color for the palette of the arrow shown when moving icons | | 1 | | `LaunchDotsUserPalette` | Whether or not to use the DS Profile color for the palette of the launch dots | | 1 | | `DialogBoxUserPalette` | Whether or not to use the DS Profile color for the palette of the dialog box | | 1 | | `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](custom-dsi-3ds-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 Mode options You may add specific override options to `theme.ini` for use in Macro Mode. To do this, add `[MACRO]` to a blank line at the bottom of the configuration file, then add any specified configurations below it. ## Custom background music and sound effects I temi per DSi e 3DS supportano anche la musica personalizzata. Per maggiori dettagli, consulta [Skin DSi/3DS - Effetti sonori personalizzati](custom-dsi-3ds-sfx). ## Custom fonts You may put [Custom Fonts](custom-fonts) in the `font` folder for use in the skin. You can also add override fonts for the date & time using `date_time.nftr`, and the console username with `username.nftr`. ## Part 3: Adding to TWiLight Menu++ Once you've edited some graphics and would like to test your skin, simply copy your skin folder (the folder containing the `background`, `battery`, etc folders) to `sd:/_nds/TWiLightMenu/3dsmenu/themes/` or `sd:/_nds/TWiLightMenu/dsimenu/themes/` for 3DS and DSi theme skins respectively. ## Part 4: Sharing your skin Once you've completed your skin, you can share it with the community by creating a Pull Request adding it to the [DS-Homebrew/twlmenu-extras](https://github.com/DS-Homebrew/twlmenu-extras) GitHub repository in a `.7z` file. If you're unfamiliar with using git you can also simply create an issue on that repository with a zip file of your skin requesting it be added.