[For English](README.en.md)
# Emu4Vita++
这是一个在 PlayStation Vita 使用的, 基于 [Libretro API](https://github.com/libretro/libretro-common) 的模拟器前端。
* [下载](#下载)
* [功能说明](#功能说明)
* [支持的内核](#支持的内核)
* [编译](#编译前准备)
* [相关脚本](#相关脚本)
* [相关路径](#相关路径)
* [问题反馈](#问题反馈)
* [特别感谢](#特别感谢)
## 下载
[Release](https://github.com/noword/Emu4VitaPlus/releases)
[百度网盘](https://pan.baidu.com/s/1chcOOw9G1GBtlkM9K4MtRg?pwd=E4VP)
带log的版本会在 `ux0:data/EMU4VITAPLUS/[core]/Emu4Vita++.log` 中输出更多日志,但是会影响执行效率。
## 功能说明
### 内核选择
| | |
|-------------------------------------------------------------------------------------------------------------|------------------------|
|
| 开启/关闭 console 图标 |
|
| 控制说明文本滚动 |
|
或
| 启动内核 |
### ROM 浏览
| | |
|-------------------------------------------------------------------------------------------------------------|--------------------------------|
|
| 添加/移出收藏夹 |
|
| 呼出文件管理菜单 |
|
或
| 进入目录/返回上层目录/启动游戏 |
|
| 搜索 |
|
| 下一个搜索匹配文件 |
### 手柄测试
### 主题
### 游戏
| | |
|--------------------------------------------------------------------------------------------------------|------------|
|
+
| 回溯 |
|
+
| 加速 |
|
+
| 减速 |
|
| 切换回菜单 |
### PC OS 模拟器中,例如 DOS, PC98 等,呼出键盘
| | |
|-----------------------------------------------------------------------------------------------------------|----------|
|
+
| 切换键盘 |
|
+
| 键盘上移 |
|
+
| 键盘下移 |
### 即时存档
### 金手指
### 使用触控屏在 FCEumm 中打鸭子
* 控制 ==> 设备端口2,设置为 Zapper
### [遮罩和着色器](GRAPHICS.md)
## 支持的内核
街机
- [FinalBurn Lite](https://gitee.com/yizhigai/libretro-fba-lite)
- [FinalBurn Alpha 2012](https://github.com/libretro/fbalpha2012)
- [FinalBurn Neo](https://github.com/libretro/FBNeo)
- [FinalBurn Neo Xtreme](https://github.com/KMFDManic/FBNeo-Xtreme-Amped)
- [mame2000](https://github.com/libretro/mame2000-libretro)
- [mame2003](https://github.com/libretro/mame2003-libretro)
- [mame2003_plus](https://github.com/libretro/mame2003-plus-libretro)
- [mame2003 Xtreme](https://github.com/KMFDManic/mame2003-xtreme)
NES
- [FCEUmm](https://github.com/libretro/libretro-fceumm)
- [Nestopia](https://github.com/libretro/nestopia)
SNES
- [Snes9x 2005](https://github.com/libretro/snes9x2005)
- [Snes9x](https://github.com/libretro/snes9x)
- [Supafaust](https://github.com/Rinnegatamante/supafaust)
- [ChimeraSNES](https://github.com/jamsilva/chimerasnes)
MD
- [Genesis Plus GX](https://github.com/libretro/Genesis-Plus-GX)
- [Genesis Plus GX Wide](https://github.com/libretro/Genesis-Plus-GX-Wide)
- [PicoDrive](https://github.com/libretro/picodrive)
GBC
- [Gambatte](https://github.com/libretro/gambatte-libretro)
- [TGB Dual](https://github.com/libretro/tgbdual-libretro.git)
GBA
- [gpSP](https://github.com/libretro/gpsp)
- [VBA Next](https://github.com/libretro/vba-next)
- [mGBA](https://github.com/libretro/mgba)
PCE
- [Mednafen PCE Fast](https://github.com/libretro/beetle-pce-fast-libretro)
- [Mednafen SuperGrafx](https://github.com/libretro/beetle-supergrafx-libretro)
PS1
- [PCSX ReARMed](https://github.com/libretro/pcsx_rearmed)
NEOCD
- [NeoCD](https://github.com/libretro/neocd_libretro)
WSC
- [Mednafen Wonderswan](https://github.com/libretro/beetle-wswan-libretro)
NGP
- [Mednafen NeoPop](https://github.com/libretro/beetle-ngp-libretro)
DOS
- [DOS Pure](https://github.com/libretro/dosbox-pure)
Atari 2600
- [Stella 2014](https://github.com/libretro/stella2014-libretro)
Atari 5200
- [Atari800](https://github.com/libretro/libretro-atari800)
Atari 7800
- [ProSystem](https://github.com/libretro/prosystem-libretro)
Vectrex
- [vecx](https://github.com/libretro/libretro-vecx)
Amiga
- [uae4arm](https://github.com/libretro/uae4arm-libretro)
ZX Spectrum
- [fuse](https://github.com/libretro/fuse-libretro)
PC98
- [Neko Project II](https://github.com/libretro/libretro-meowPC98)
MSX
- [Marat Fayzullin's fMSX](https://github.com/libretro/fmsx-libretro)
- [blueMSX](https://github.com/libretro/blueMSX-libretro)
Commodore 64
- [VICE](https://github.com/libretro/vice-libretro)
Sharp X68000
- [PX68k](https://github.com/libretro/px68k-libretro)
## 编译前准备
### Windows
* 安装 [msys2](https://www.msys2.org/) 或 [devkitPro](https://github.com/devkitPro/installer/releases)
#### 进入 msys
* 安装 [vitasdk](https://vitasdk.org/)
* 安装 cmake, python, ccache
```bash
pacman -S cmake python python-pip ccache
```
* 安装 [openpyxl](https://pypi.org/project/openpyxl/), [pillow](https://pypi.org/project/pillow/), [lz4](https://pypi.org/project/lz4/), [toml](https://pypi.org/project/toml/)
```bash
pip3 install openpyxl pillow pz4 toml
```
或者通过 pacman 安装适合的版本(推荐)
```bash
pacman -S mingw-w64-???-???-python-openpyxl \
mingw-w64-???-???-python-pillow \
mingw-w64-???-???-python-lz4 \
mingw-w64-???-???-python-toml
```
### Linux
参考 Windows 的步骤,都用 Linux 了,应该有能力自己捣鼓了。
## 编译
```bash
mkdir build
cd build
cmake ../
make
```
编译带日志的版本:
```bash
mkdir build-debug
cd build-debug
cmake ../ -DWITH_LOG=ON
make
```
编译独立内核的vpk:
```bash
mkdir build-gpsp
cd build-gpsp
cmake ../ -DBUILD=gpsp
make
```
## 相关脚本
### 翻译
```mermaid
graph TD
A[./to_exce.py] --> B{{编辑 language.xlsx 和 translation.xlsx}}
B --> C[./to_json.py]
```
### 生成 shaders
```bash
./compile_shaders.py #请自行在网上寻找 psp2cgc.exe
```
## 相关路径
### 预览图
程序会在 rom 目录下的 `.previews` 目录中自动寻找同名的 `jpg` 或 `png` 图片,如果未找到,则会搜寻即时存档的截图
### 金手指
程序会依次在 rom 目录下,rom目录下的.cheats 目录,ux0:/data/EMU4VITAPLUS/[内核]/cheats 目录下的同名.cht文件,以先找到的为准。
### 遮罩
程序会读取 ux0:/data/EMU4VITAPLUS/[内核]/overlays 下的 overlays.ini
### 存档
ux0:/data/EMU4VITAPLUS/[内核]/savefiles/[rom]
### BIOS
ux0:/data/EMU4VITAPLUS/system
请自行将对应的 BIOS 文件复制到此目录中【重要】
### 兼容 [RetroArch romset](https://docs.libretro.com/guides/roms-playlists-thumbnails/)
Emu4Vita++ 会尝试读取以下目录中的 .lpl 文件:
* ux0:data/EMU4VITAPLUS/playlists
* ux0:data/retroarch/retroarch.cfg 中的 playlist_directory 项
* ux0:data/retroarch/playlists
利用 lpl 中的 label 和 path 信息,显示 rom 名称和缩略图。
## 问题反馈
[https://github.com/noword/Emu4VitaPlus/issues](https://github.com/noword/Emu4VitaPlus/issues)
QQ群:550802386
如果希望回报问题,请注明版本和使用的内核,问题出现前的操作;
如果在游戏过程中出现问题,请上传rom;
如果程序奔溃,请找到ux0:/data/下面的psp2dmp文件,并上传。
## 特别感谢
[一直改](https://gitee.com/yizhigai/Emu4Vita)
[KyleBing](https://github.com/KyleBing/retro-game-console-icons)
TearCrow
[SnowPin](https://github.com/LiquifiedSnow) (RetroAchievements Admin)
[Scott](https://github.com/ScottFromDerby) (RetroAchievements 测试)
[yyoossk](https://github.com/yyoossk) (日语翻译)
[theheroGAC](https://github.com/theheroGAC) (意大利语翻译)
[chronoss09](https://github.com/chronoss09) (法语翻译)
[limonetas](https://github.com/limonetas) (西班牙语翻译)
[MayanKoyote](https://github.com/MayanKoyote) (俄罗斯语翻译)
以及在本项目中用到的所有开源项目的开发者们