Skip to content

Commit 4b17784

Browse files
authored
Merge pull request #1175 from jiangxincode/feat/nicaiemu-docs
Add NicaiEmu core documentation
2 parents e2ee2d8 + d5fe2c3 commit 4b17784

4 files changed

Lines changed: 139 additions & 0 deletions

File tree

docs/development/licenses.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ See below for a summary of the licenses behind RetroArch and its cores:
172172
| Mupen64Plus | [GPLv3](https://github.com/libretro/mupen64plus-libretro/blob/master/LICENSE) | |
173173
| Mupen64Plus GLES3 | [GPLv3](https://github.com/libretro/mupen64plus-libretro/blob/master/LICENSE) | |
174174
| [Native32Emu](../library/native32emu.md) | [BSD-3-Clause](https://github.com/jiangxincode/Native32Emu/blob/master/LICENSE) | |
175+
| [NicaiEmu](../library/nicaiemu.md) | [BSD-3-Clause](https://github.com/jiangxincode/NicaiEmu/blob/master/LICENSE) | |
175176
| Neko Project II | | |
176177
| Neko Project II Kai | [MIT](https://github.com/AZO234/NP2kai/blob/master/LICENSE) | |
177178
| [Nestopia](../library/nestopia.md) | [GPLv2](https://github.com/libretro/nestopia/blob/master/COPYING) | |

docs/guides/core-list.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@
148148
| [Mupen64Plus-Next GLES2](https://docs.libretro.com/library/mupen64plus/) | Nintendo 64 | |
149149
| [Mupen64Plus-Next GLES3](https://docs.libretro.com/library/mupen64plus/) | Nintendo 64 | |
150150
| [Native32Emu](../library/native32emu.md) | Sunplus Native32 | An emulator for the Sunplus Native32 game format used by DVD player and TV chipsets |
151+
| [NicaiEmu](../library/nicaiemu.md) | MStar Nicai | An emulator for the MStar Nicai game format used by MStar feature phones |
151152
| Neko Project II | NEC PC-98 | |
152153
| Neko Project II Kai | NEC PC-98 | |
153154
| NeoCD | Neo Geo CD | |

docs/library/nicaiemu.md

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
# Nicai (NicaiEmu)
2+
3+
## Background
4+
5+
Nicai is a game format developed by MStar for feature phones (circa 2005–2011). Games are packaged as `.cbe` (Cool Bar Engine) container archives and run on ARM/Thumb hardware with a 240x400 (WQVGA) display. The games contain scenes, maps, actors, images, audio, and scripts executed by the XSE (eXecutable Script Engine) virtual machine. NicaiEmu is an emulator for this format written in Rust, with a libretro core front-end.
6+
7+
The NicaiEmu core has been authored by:
8+
9+
- Aloys
10+
11+
The NicaiEmu core is licensed under:
12+
13+
- [BSD-3-Clause](https://github.com/jiangxincode/NicaiEmu/blob/master/LICENSE)
14+
15+
A summary of the licenses behind RetroArch and its cores can be found [here](../development/licenses.md).
16+
17+
## BIOS
18+
19+
No BIOS or firmware files are required.
20+
21+
## Extensions
22+
23+
Content that can be loaded by the NicaiEmu core have the following file extensions:
24+
25+
- .cbe
26+
27+
RetroArch database(s) that are associated with the NicaiEmu core:
28+
29+
- Nicai
30+
31+
## Features
32+
33+
Frontend-level settings or features that the NicaiEmu core respects:
34+
35+
| Feature | Supported |
36+
|-------------------|:---------:|
37+
| Restart ||
38+
| Saves ||
39+
| States ||
40+
| Rewind ||
41+
| Netplay ||
42+
| Core Options ||
43+
| [Memory Monitoring (achievements)](../guides/memorymonitoring.md) ||
44+
| RetroArch Cheats ||
45+
| Native Cheats ||
46+
| Controls ||
47+
| Remapping ||
48+
| Multi-Mouse ||
49+
| Rumble ||
50+
| Sensors ||
51+
| Camera ||
52+
| Location ||
53+
| Subsystem ||
54+
| [Softpatching](../guides/softpatching.md) ||
55+
| Disk Control ||
56+
| Username ||
57+
| Language ||
58+
| Crop Overscan ||
59+
| LEDs ||
60+
61+
## Directories
62+
63+
The NicaiEmu core's library name is 'Nicai (NicaiEmu)'
64+
65+
## Usage
66+
67+
The NicaiEmu core requires the full path to content, so content is loaded directly from disk rather than from memory.
68+
69+
Video is output in the XRGB8888 pixel format and audio is output as 44.1 kHz stereo. Save states, core options, and guest memory descriptors (system RAM and video RAM) are implemented. Guest MIDI audio is synthesized, and an auto-BGM compatibility layer can play the first packaged MIDI resource for games that never call the audio manager.
70+
71+
## Core options
72+
73+
The NicaiEmu core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded.
74+
75+
- **Audio Volume (%)** (**100**|90|80|70|60|50|40|30|20|10|0)
76+
77+
Master playback volume.
78+
79+
- **Key Auto-Repeat Delay (frames)** (**10**|0|2|4|6|8|12|16|20|24|30|45|60)
80+
81+
Frames a held key waits before repeating (at 30fps).
82+
83+
- **Key Auto-Repeat Period (frames)** (**15**|1|2|3|4|5|6|8|10|12|20|30)
84+
85+
Frames between repeat pulses once repeating.
86+
87+
- **Touch/Pointer Input** (**enabled**|disabled)
88+
89+
Whether mouse/touchscreen taps reach the guest.
90+
91+
- **CPU/HLE Debug Logging** (**disabled**|enabled)
92+
93+
Forward debug-level core logs to the frontend log.
94+
95+
- **Auto BGM (packaged MIDI)** (**disabled**|enabled)
96+
97+
Play the first packaged MIDI resource when the game never calls the audio manager.
98+
99+
## User 1 device types
100+
101+
The NicaiEmu core supports the following device type(s) in the controls menu, bolded device types are the default for the specified user(s):
102+
103+
- **RetroPad** - Gamepad
104+
- **Pointer** - Mouse / touchscreen
105+
106+
## Joypad
107+
108+
| RetroPad Inputs | User 1 input descriptors |
109+
|------------------------------------------------|--------------------------|
110+
| ![](../image/retropad/retro_b.png) | Confirm |
111+
| ![](../image/retropad/retro_a.png) | Confirm |
112+
| ![](../image/retropad/retro_x.png) | Left soft key |
113+
| ![](../image/retropad/retro_y.png) | Right soft key |
114+
| ![](../image/retropad/retro_start.png) | Confirm |
115+
| ![](../image/retropad/retro_dpad_up.png) | Up |
116+
| ![](../image/retropad/retro_dpad_down.png) | Down |
117+
| ![](../image/retropad/retro_dpad_left.png) | Left |
118+
| ![](../image/retropad/retro_dpad_right.png) | Right |
119+
120+
## Pointer
121+
122+
| RetroPointer Inputs | NicaiEmu Inputs |
123+
|-------------------------------------------------------------------------------------------------------|-----------------|
124+
| ![](../image/retromouse/retro_mouse.png) or ![](../image/Button_Pack/Gestures/Gesture_Finger_Front.png) Pointer Position | Pointer X/Y |
125+
| ![](../image/retromouse/retro_left.png) or ![](../image/Button_Pack/Gestures/Gesture_Tap.png) Pointer Pressed | Press |
126+
127+
## Compatibility
128+
129+
Compatibility is limited to a subset of CBE applications.
130+
131+
## External links
132+
133+
- [NicaiEmu Repository](https://github.com/jiangxincode/NicaiEmu)
134+
- [Libretro NicaiEmu Core info file](https://github.com/libretro/libretro-super/blob/master/dist/info/nicaiemu_libretro.info)
135+
- [Report Libretro NicaiEmu Core Issues Here](https://github.com/jiangxincode/NicaiEmu/issues)

mkdocs.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,8 @@ nav:
285285
- 'Sunplus Emulation':
286286
- 'Sunplus - Native32 (Native32Emu)': 'library/native32emu.md'
287287
- 'Sunplus - SPMP8000 (SPMP8000Emu)': 'library/spmp8000emu.md'
288+
- 'MStar Emulation':
289+
- 'MStar - Nicai (NicaiEmu)': 'library/nicaiemu.md'
288290
- 'Texas Instruments Emulation':
289291
- 'Texas Instruments - TI-83 (Numero)': 'library/numero.md'
290292
- 'Thomson Emulation':

0 commit comments

Comments
 (0)