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:
Hướng dẫn cấu hình info.json
Phần tiêu đề “Hướng dẫn cấu hình info.json”Định danh loại game (gameTypeIdentifier)
Phần tiêu đề “Định danh loại game (gameTypeIdentifier)”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
Định danh duy nhất của skin (identifier)
Phần tiêu đề “Định danh duy nhất của skin (identifier)”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.
Làm animation nhấn
Phần tiêu đề “Làm animation nhấn”Muốn phản hồi nút động? Chỉ hai bước:
- Tách lớp: Tách nền nút và lớp trước (xem 3DS Skin Template)
- Cấu hình JSON: Thêm trường
assetcho nút tronginfo.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"]}Làm nút Switch có animation
Phần tiêu đề “Làm nút Switch có animation”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 begin và end 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:
reverseScreensvolumetoggleControllstoggleAnalogtvTypeleftDifficultyrightDifficulty
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.
Custom Function Buttons
Phần tiêu đề “Custom Function Buttons”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 nhanhquickLoad: Load tay nhanhfastForward: Giữ để tua tối đatoggleFastForward: Chạm để xoay tốc độreverseScreens: Đổi màn chính/phụvolume: Điều khiển mutesaveStates: Mở danh sách save statecheatCodes: Mở danh sách cheatskins: Mở danh sách skinfilters: Mở danh sách bộ lọcscreenshot: Chụp màn hìnhhaptics: Chỉnh phản hồi rungcontrollers: Mở danh sách tay cầmorientation: Đổi cài đặt xoayfunctionLayout: Vào cấu hình bố cụcrestart: Reset gameresolution: Đặt độ phân giải gamequit: Thoát gameamiibo:Tải Amiibos cho 3DShomeMenu:Về Home Menu của 3DS
Thêm từ v1.4.2 trở lên:
toggleControlls:Ẩn/Hiện Controllsblowing:Mô phỏng thổi vào micpalette: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 2xfastForward3x: Giữ để tua nhanh 3xfastForward4x: Giữ để tua nhanh 4xairPlayScaling: Chỉnh cách scale màn game khi AirPlayairPlayLayout: 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ànj2meSettings:Mở trang cài đặt J2MEdosSettings:Mở trang cài đặt nhân DOSinsertDisc:Lắp đĩa
Thêm từ v2.0.0 trở lên:
coreSettings:Mở cài đặt nhânrewind: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" ]}Hiệu ứng âm thanh
Phần tiêu đề “Hiệu ứng âm thanh”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ả.
Hướng dẫn đóng gói skin
Phần tiêu đề “Hướng dẫn đóng gói skin”Đóng gói skin trong ba bước:
- Đặt mọi asset phẳng (không thư mục cha)
- Chọn tất cả tệp và nén thành tệp ZIP không mã hóa
- Chọn phần mở rộng:
.manicskinhoặc.deltaskin
Nên dùng template chính thức để cấu trúc đúng.
Tải skin chính thức
Phần tiêu đề “Tải skin chính thức”Bắt đầu thiết kế skin riêng ngay.