Ir al contenido

Guía de skins caseras

Bienvenido a la guía de creación de skins de Manic EMU. 🎮 El sistema de skins de este emulador se basa en el framework DeltaSkin y es compatible con su formato base. Si quieres aprender primero lo esencial de DeltaSkin, consulta el tutorial oficial. Si diseñas en Figma, prueba RetroSkinner. Convierte tus diseños de Figma en archivos de skin.

Manic EMU añade aún más. ✨ Por ejemplo animaciones de pulsación, escala libre, volteo de pantalla y más. Veamos cómo usar estas funciones exclusivas:


Identificador de tipo de juego (gameTypeIdentifier)

Sección titulada «Identificador de tipo de juego (gameTypeIdentifier)»

Manic EMU usa identificadores de tipo de juego propios:

  • Wii: public.aoshuang.game.wii
  • NGC: public.aoshuang.game.ngc
  • Amiga: public.aoshuang.game.amiga
  • C64: public.aoshuang.game.c64
  • NGP: public.aoshuang.game.ngp
  • PCE: public.aoshuang.game.pce
  • Symbian: public.aoshuang.game.symbian
  • DOS: public.aoshuang.game.dos
  • J2ME: public.aoshuang.game.j2me
  • DOOM: public.aoshuang.game.doom
  • JAGUAR: public.aoshuang.game.jaguar
  • LYNX: public.aoshuang.game.lynx
  • 7800: public.aoshuang.game.7800
  • 5200: public.aoshuang.game.5200
  • 2600: public.aoshuang.game.2600
  • Arcade: public.aoshuang.game.arcade
  • DC: public.aoshuang.game.dc
  • PS1: public.aoshuang.game.ps1
  • PM: public.aoshuang.game.pm
  • VB: public.aoshuang.game.vb
  • N64: public.aoshuang.game.n64
  • SS: public.aoshuang.game.ss
  • MD: public.aoshuang.game.md
  • MCD: public.aoshuang.game.mcd
  • 32X: public.aoshuang.game.32x
  • MS: public.aoshuang.game.ms
  • GG: public.aoshuang.game.gg
  • SG-1000: public.aoshuang.game.sg1000
  • MD: public.aoshuang.game.md
  • PSP: public.aoshuang.game.psp
  • 3DS: public.aoshuang.game.3ds
  • NDS: public.aoshuang.game.ds
  • GBA: public.aoshuang.game.gba
  • GBC: public.aoshuang.game.gbc
  • GB: public.aoshuang.game.gb
  • NES: public.aoshuang.game.nes
  • SNES: public.aoshuang.game.snes

💡 Consejo: para compatibilidad con Delta y Manic EMU, usa directamente los identificadores de DeltaSkin: el sistema los convertirá.

Además, como algunas plataformas pueden usar mandos compatibles, en Manic EMU puedes mezclar ciertas skins de plataforma:

  • GB GBC
  • MD MCD 32X
  • MS GG SG-1000
  • NES FDS
  • DOS DOOM

Identificador único de la skin (identifier)

Sección titulada «Identificador único de la skin (identifier)»

Asigna un identificador único a nivel global. Los nombres duplicados pueden impedir la carga o provocar problemas de caché.


¿Quieres respuesta dinámica en los botones? Solo dos pasos:

  1. Separación de capas: separa fondos y primeros planos de los botones (consulta la plantilla de skin 3DS)
  2. Configuración JSON: añade un campo asset al botón en info.json

Ejemplo: efecto de pulsación en el botón A

{
"asset": {
"normal": "a_button.pdf"
// Reserve for future state expansions
},
"frame": {
"height": 48,
"width": 48,
"x": 545,
"y": 552
},
"inputs": ["a"]
}

Activa un conmutador con persistencia de estado. Como referencia visual, mira la skin por defecto de Atari 2600.

Ejemplo

{
"asset":
{
"normal": "fuction_button.pdf",
"selected": "fuction_button.pdf"
},
"frame":
{
"height": 40,
"width": 20,
"x": 30,
"y": 569
},
"animation":
{
"type": "spring",
"begin":
{
"height": 20,
"width": 20,
"x": 0,
"y": 2
},
"end":
{
"height": 20,
"width": 20,
"x": 0,
"y": 18
}
},
"inputs": "menu",
"selfRetracting": true
}

Se ha añadido un objeto animation (por ahora solo en Switch Button). animation:

  • type define el tipo de curva de animación. Por ahora solo se admite spring.
  • begin define el frame antes de que empiece la animación.
  • end define el frame al terminar la animación.

Nota: las coordenadas de begin y end son relativas a su frame padre.

asset: Además del asset normal, se ha añadido un asset selected. Así el control puede mostrar un recurso distinto en el estado selected (por ahora solo en Switch Button).

inputs: El contenido es el mismo que en otros controles, pero aquí solo se pueden pasar cadenas. Se entiende como la función ligada al Switch Button. Puede ser una orden de entrada estándar, como a, b, up, down…, o un botón de función personalizado de la siguiente sección.

Nota: algunos botones de función personalizados admiten enlace de estado. Por ejemplo, si inputs es volume (control de silencio), el sistema consulta el estado del volumen al cargar la skin y actualiza el Switch Button ligado. Mira el efecto de tvType en la skin por defecto de Atari 2600.

Los botones de función personalizados que admiten enlace de estado son:

  • reverseScreens
  • volume
  • toggleControlls
  • toggleAnalog
  • tvType
  • leftDifficulty
  • rightDifficulty

selfRetracting: Indica si el Switch Button se restablece solo. Mira el botón de reset del Atari 2600, que vuelve tras pulsarlo y simula un interruptor momentáneo.


Manic EMU admite muchas acciones rápidas (consulta los requisitos de versión):

Compatible desde v1.2.3:

  • flex: entra en los ajustes de disposición de la skin

Añadidos en v1.2.4 y posteriores:

  • quickSave: guardado manual rápido
  • quickLoad: carga manual rápida
  • fastForward: mantén pulsado para el máximo avance rápido
  • toggleFastForward: toca para ciclar las velocidades
  • reverseScreens: intercambia la pantalla principal y la secundaria
  • volume: control de silencio
  • saveStates: abre la lista de estados
  • cheatCodes: abre la lista de códigos de trucos
  • skins: abre la lista de skins
  • filters: abre la lista de filtros
  • screenshot: captura de pantalla
  • haptics: ajusta la respuesta háptica
  • controllers: abre la lista de mandos
  • orientation: cambia los ajustes de rotación
  • functionLayout: entra en la configuración de disposición
  • restart: reinicia el juego
  • resolution: define la resolución del juego
  • quit: sale del juego
  • amiibo:carga Amiibos en 3DS
  • homeMenu:vuelve al Home Menu de 3DS

Añadidos en v1.4.2 y posteriores:

  • toggleControlls:oculta o muestra los controles
  • blowing:simula soplar al micrófono
  • palette:paleta para GB GBC VB

Añadidos en v1.5.0 y posteriores:

  • swapDisk:cambia al siguiente disco o de cara en FDS

Añadidos en v1.5.5 y posteriores:

  • shake:simulación de sacudida

Añadidos en v1.6.0 y posteriores:

  • toggleAnalog:cambia el modo del dispositivo de entrada, por ejemplo a un PlayStation Controller o DualShock en PS1.

Añadidos en v1.7.0 y posteriores:

  • retroAchievements:abre la página de RetroAchievements.

Nuevos en v1.7.1 y posteriores:

  • fastForward2x: mantén pulsado para avance rápido a 2x
  • fastForward3x: mantén pulsado para avance rápido a 3x
  • fastForward4x: mantén pulsado para avance rápido a 4x
  • airPlayScaling: ajusta cómo se escala la pantalla del juego durante AirPlay
  • airPlayLayout: elige cómo se disponen los juegos de varias pantallas (como NDS) durante AirPlay

Nuevos en v1.7.2 y posteriores:

  • gameplayManuals:abre los Gameplay Manuals

Nuevos en v1.7.3 y posteriores:

  • triggerPro:cambia las configuraciones de TriggerPro

Nuevos en v1.8.3 y posteriores:

  • tvType: cambia entre color y blanco y negro en Atari 2600.
  • leftDifficulty: interruptor de dificultad izquierdo de Atari 2600.
  • rightDifficulty: interruptor de dificultad derecho de Atari 2600.

Nuevos en v1.9.0 y posteriores:

  • screenScaling:cambia el modo de estirado de pantalla
  • j2meSettings:abre la página de ajustes de J2ME
  • dosSettings:abre la página de ajustes del núcleo de DOS
  • insertDisc:inserta el disco

Nuevos en v2.0.0 y posteriores:

  • coreSettings:abrir la configuración del núcleo
  • rewind:mantén pulsado para rebobinar

Ejemplo: añadir un botón de reinicio

{
"asset": { "normal": "button.pdf" },
"frame": { ... },
"inputs": [ "restart" ]
}

⚠️ Aviso importante No asignes varias funciones a un solo botón. Por ejemplo:

// ❌ Dangerous Example!
{
"inputs": [ "restart", "quit" ]
}

Desde V1.9.0, Manic EMU admite efectos de sonido en los botones de la skin. Convierte tus archivos de audio a formato CAF, renómbralos como sound.caf y colócalos en la raíz de la skin antes de empaquetarlo todo.


Empaqueta tu skin en tres pasos:

  1. Coloca todos los assets en plano (sin carpetas padre)
  2. Selecciona todos los archivos y comprímelos en un ZIP sin cifrado
  3. Elige la extensión: .manicskin o .deltaskin

Recomendamos usar las plantillas oficiales para asegurar la estructura.



Empieza a diseñar tu skin. 🎨