Bỏ qua để đến nội dung

Hướng dẫn tự làm skin

Chào mừng đến Hướng dẫn tạo skin Manic EMU. Hệ skin của trình giả lập này dựng trên framework DeltaSkin, tương thích đầy đủ với định dạng gốc DeltaSkin. Nếu muốn học nền tảng DeltaSkin trước, xem hướng dẫn chính thức. Nếu thiết kế trên Figma, hãy xem RetroSkinner. Nó giúp bạn biến thiết kế Figma thành tệp skin.

Manic EMU còn thêm tính năng riêng: animation nhấn, scale tự do, lật màn, và hơn thế. Cùng xem cách dùng các tính năng độc quyền này:


Manic EMU dùng định danh loại game riêng:

  • 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

Mẹo: Để tương thích cả Delta và Manic EMU, dùng thẳng định danh DeltaSkin — hệ thống sẽ tự chuyển.

Ngoài ra, vì một số nền tảng dùng tay cầm tương thích, bạn có thể trộn skin giữa một số nền tảng trong Manic EMU:

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

Gán định danh duy nhất toàn cục cho skin. Tên trùng có thể gây lỗi tải hoặc cache.


Muốn phản hồi nút động? Chỉ hai bước:

  1. Tách lớp: Tách nền nút và lớp trước (xem 3DS Skin Template)
  2. Cấu hình JSON: Thêm trường asset cho nút trong info.json

Ví dụ: Thêm hiệu ứng nhấn cho nút A

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

Bật chức năng gạt với trạng thái được giữ. Tham khảo hình, xem skin Atari 2600 mặc định.

Ví dụ

{
"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
}

Đã thêm object animation mới (hiện chỉ hỗ trợ Switch Button). animation:

  • type định nghĩa kiểu đường cong animation. Hiện chỉ hỗ trợ spring.
  • begin định nghĩa frame trước khi animation bắt đầu.
  • end định nghĩa frame khi animation kết thúc.

Lưu ý: Tọa độ trong beginend là tương đối so với frame cha.

asset: Ngoài asset normal, đã thêm asset selected. Nhờ đó control hiện tài nguyên tương ứng khi ở trạng thái selected (hiện chỉ hỗ trợ Switch Button).

inputs: Nội dung giống các control khác, nhưng ở đây chỉ truyền chuỗi. Có thể hiểu là chức năng gắn với Switch Button. Có thể là lệnh thao tác chuẩn như a, b, up, down…, hoặc Custom Function Buttons ở mục tiếp theo.

Lưu ý: Một số nút chức năng tùy chỉnh hỗ trợ gắn trạng thái. Ví dụ, nếu inputs đặt thành volume (điều khiển mute), hệ thống sẽ hỏi trạng thái âm lượng mỗi lần tải skin và cập nhật Switch Button gắn với trạng thái tương ứng. Tham khảo hiệu ứng tvType trên skin Atari 2600 mặc định.

Custom Function Buttons hỗ trợ gắn trạng thái gồm:

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

selfRetracting: Cho biết Switch Button có tự reset không. Tham khảo nút reset game trên Atari 2600: bật lại sau khi nhấn, mô phỏng công tắc momentary.


Manic EMU hỗ trợ nhiều hành động tắt (xem yêu cầu phiên bản):

Hỗ trợ từ v1.2.3 trở lên:

  • flex: Vào cài đặt bố cục skin

Thêm từ v1.2.4 trở lên:

  • quickSave: Save tay nhanh
  • quickLoad: Load tay nhanh
  • fastForward: Giữ để tua tối đa
  • toggleFastForward: Chạm để xoay tốc độ
  • reverseScreens: Đổi màn chính/phụ
  • volume: Điều khiển mute
  • saveStates: Mở danh sách save state
  • cheatCodes: Mở danh sách cheat
  • skins: Mở danh sách skin
  • filters: Mở danh sách bộ lọc
  • screenshot: Chụp màn hình
  • haptics: Chỉnh phản hồi rung
  • controllers: Mở danh sách tay cầm
  • orientation: Đổi cài đặt xoay
  • functionLayout: Vào cấu hình bố cục
  • restart: Reset game
  • resolution: Đặt độ phân giải game
  • quit: Thoát game
  • amiibo:Tải Amiibos cho 3DS
  • homeMenu:Về Home Menu của 3DS

Thêm từ v1.4.2 trở lên:

  • toggleControlls:Ẩn/Hiện Controlls
  • blowing:Mô phỏng thổi vào mic
  • palette:Bảng màu cho GB GBC VB

Thêm từ v1.5.0 trở lên:

  • swapDisk:Đổi sang đĩa tiếp theo hoặc đổi mặt cho FDS

Thêm từ v1.5.5 trở lên:

  • shake:Mô phỏng lắc

Thêm từ v1.6.0 trở lên:

  • toggleAnalog:Đổi chế độ thiết bị nhập, như chuyển sang PlayStation Controller hoặc DualShock trên PS1.

Thêm từ v1.7.0 trở lên:

  • retroAchievements:Mở trang RetroAchievements.

Mới từ v1.7.1 trở lên:

  • fastForward2x: Giữ để tua nhanh 2x
  • fastForward3x: Giữ để tua nhanh 3x
  • fastForward4x: Giữ để tua nhanh 4x
  • airPlayScaling: Chỉnh cách scale màn game khi AirPlay
  • airPlayLayout: Chọn cách xếp game nhiều màn (như NDS) khi AirPlay

Mới từ v1.7.2 trở lên:

  • gameplayManuals:Mở Gameplay Manuals

Mới từ v1.7.3 trở lên:

  • triggerPro:Đổi cấu hình TriggerPro

Mới từ v1.8.3 trở lên:

  • tvType: Đổi giữa chế độ màu và đen-trắng cho Atari 2600.
  • leftDifficulty: Công tắc độ khó trái cho Atari 2600.
  • rightDifficulty: Công tắc độ khó phải cho Atari 2600.

Thêm từ v1.9.0 trở lên:

  • screenScaling:Đổi chế độ stretch màn
  • j2meSettings:Mở trang cài đặt J2ME
  • dosSettings:Mở trang cài đặt nhân DOS
  • insertDisc:Lắp đĩa

Thêm từ v2.0.0 trở lên:

  • coreSettings:Mở cài đặt nhân
  • rewind:Giữ để tua lại

Ví dụ: Thêm nút Restart

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

⚠️ Nhắc quan trọng
Đừng gán nhiều chức năng cho một nút. Ví dụ:

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

Từ V1.9.0, Manic EMU hỗ trợ hiệu ứng âm cho nút skin. Bạn có thể chuyển tệp âm sang định dạng CAF, đổi tên thành sound.caf, đặt vào thư mục gốc của skin rồi đóng gói tất cả.


Đóng gói skin trong ba bước:

  1. Đặt mọi asset phẳng (không thư mục cha)
  2. Chọn tất cả tệp và nén thành tệp ZIP không mã hóa
  3. Chọn phần mở rộng: .manicskin hoặc .deltaskin

Nên dùng template chính thức để cấu trúc đúng.



Bắt đầu thiết kế skin riêng ngay.