Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Flycast Vita: Difference between revisions

From GameBrew
m (Text replacement - "GameBrew!" to "GameBrew")
No edit summary
Line 2: Line 2:
|title=Vita Homebrew Emulators (Console) - GameBrew
|title=Vita Homebrew Emulators (Console) - GameBrew
|title_mode=append
|title_mode=append
|image=flycastvita.jpg
|image=flycastvita2.png
|image_alt=Flycast Vita
|image_alt=Flycast Vita
}}
}}
{{Infobox Vita Homebrews
{{Infobox Vita Homebrews
|title=Flycast Vita
|title=Flycast Vita
|image=flycastvita.jpg
|image=flycastvita2.png
|description=Sega Dreamcast emulator for PSVITA/PSTV.
|description=Sega Dreamcast emulator for PS Vita/PS TV.
|author=Rinnegatamante
|author=Rinnegatamante
|lastupdated=2022/10/25
|lastupdated=2022/10/25
Line 18: Line 18:
|source=https://github.com/Rinnegatamante/flycast-vita
|source=https://github.com/Rinnegatamante/flycast-vita
}}
}}
Flycast Vita is a port of flycast, popular multiplatform Dreamcast emulator maintained by flyinghead. It's based on the standalone version of the emulator modified with added features to fasten the emulation compared to a regular vanilla port of the emulator.
Flycast Vita is a port of Flycast (A popular opensource Dreamcast emulator) for the PlayStation Vita. Due to the nature of the console emulated by this emulator, it's not to be expected a perfect emulation on every available title.  


==Requirements==
==Installation==
Requirements:
* CFW Enso 3.60 or Enso 3.65
* CFW Enso 3.60 or Enso 3.65
* libshacccg.suprx
* libshacccg.suprx
* kubridge.skprx v.0.2 or higher
* [[Kubridge Vita|kubridge.skprx]] v.0.2 or higher
* fd_fix.skprx OR repatch_ex.skprx
* [[FdFix Vita|fd_fix.skprx]] OR repatch_ex.skprx
 
Install the required plugins:
*Install [[Kubridge Vita|kubridge.skprx]] and [[FdFix Vita|fd_fix.skprx]] by copying kubridge.skprx and fd_fix.skprx to your taiHEN plugins folder and adding two entries to your config.txt under *KERNEL (change accordingly if you are using ur0:tai):
*KERNEL
ux0:tai/kubridge.skprx
ux0:tai/fd_fix.skprx
*Install libshacccg.suprx, if you don't have it already, by running [[ShaRKBR33D Vita|ShaRKBR33D]].
 
Then install Flycast.vpk using [[VitaShell].
 
(Optional but strongly recommended) Dump your own DC bios and place it inside ux0:data/flycast/data.​
 
==User guide==
You can consult a Compatibility List from [https://newflycast.rinnegatamante.it/ this link].​
 
===Suggested Options Setup===
On the compatibility list, you can find a perfect options setup for each game. A good starting options setup is the following:
 
General:
*Cable: TV Composite
*Broadcast: PAL
*Region: Europe
Video:
*Transparent Sorting: Per Strip
*Fast Sorting: Enabled
*Automatic Frame Skipping: Normal
*Shadows: Disabled
*Fog: Disabled
*Texture Filtering: Default
*Use Mipmaps: Enabled
*Use Simple Shaders: Enabled
*VSync: Disabled
*Native Depth Interpolation: Disabled
*Internal Resolution: 640x480 (Native)​
 
Audio:
*Enable DSP: Disabled​
 
Advanced:
*CPU Mode: Dynarec
*Idle Skip: Enabled
*Use Neon SIMD: Enabled
*Downclock Ratio: 1.500
*Self-Modifying Code Checks: Off
*Enable UPnP: Disabled
*HLE BIOS: Disabled
*Multi-threaded emulation: Enabled
*Fast GDRom Load: Enabled​
 
If a game has issues during rendering try to change: Cable, Transparent Sorting, Shadows, Fog, Use Mipmaps, Use Simple Shaders, Native Depth Interpolation, Copy to VRAM, Use Neon SIMD options.


==Installation==
If a game crashes during gameplay, try to change: Self-Modifying Code Checks (The more complete the checks, the lower the performances, so be sure to stick to Off when not required and to stick to Reduced when Full is not necessary).
* Download .vpk from here and install via VitaShell.


===How to install DC bios​===
If a game has issues with audio, try to change: Enable DSP (Enabling DSP will lower performances, so be sure to disable it if not required).
* Flycast does have an HLE bios which works decent enough in most cases however for best accuracy and compatibility, it's suggested to use a real Dreamcast bios with it. You can use your own dumped bios by placing it inside ux0:data/retroarch/system/dc named as dc_boot.bin and dc_nvmem.bin.
* When launching a game, if you get the Dreamcast logo, it means the bios has been properly installed. If you get only the Sega logo, it means you're still using the HLE bios.


'''NOTE: When installing the emulator, BE SURE to set gl1 as video driver in RetroArch frontend. Basically, first install the vpk, then launch it and set gl1 as video driver. Then close it from Close Retroarch option and then launch it again. You'll also need libshacccg.suprx to use this emulator. If you didn't already extract it, a comprehensive guide can be found here: https://samilops2.gitbook.io/vita-troubleshooting-guide/shader-compiler/extract-libshacccg.suprx'''
'''Note:''' In order for most of these settings changes to take effect, you'll need to restart the game.


'''I also strongly recommend to disable V-Sync for best performances.​'''
===Tweaks and Issues===
The emulator seems to memleak (probably related to some issues clearing some cache during emulation) thus causing games to degrade in performances during long runs and eventually even crashing the emulator due to out of memory. We STRONGLY suggest to take savestates often in order to not lose progresses.


==What has been done so far==
Due to the nature of CHD and CDI dumps (compressed), GDI dumps must be preferred for best performances.
'''CPU'''
*The current port does feature DynaRec for both main sh4 processor and arm7 processor (audio). Due to the lack of mmap/mprotect in vitasdk, currently MMU has been disabled thus causing slow code paths to be used in several instances inside the emu (eg: self modifying code checks and memory accesses).
*To mitigate the lack of MMU, three executables are bundled inside this release:
*Normal mode: Has self modifying code checks completely disabled (Best performances)
*Self Modifying Code (Performance): Has self modifying code checks only for 4 bytes per code block (Small tradeoff for better compatibility)
*Self Modifying Code (Accuracy): Has self modifying code checks for full code blocks (Best compatibility; this is the mode in which Flycast runs on other devices).
*In order to improve framerate, an huge downlock has also been set on the sh4 processor. (Roughly running on Vita at 40% its original clock)


'''GPU'''
It's recommended to use PAL dumps and to stick to TV Composite option for the Cable option. This will make games to run with 25 fps/50 fps as target (Like EU TVs at the time) instead of 30 fps/60 fps. Due to the lower fps target, games will run smoother with these settings.
* flycast renderer has been rewrote to use vitaGL at its best performances. The lack of mmap/mprotect caused texture caching to not work properly. To get rid of this issue, a slow path for texture caching has been added too that will perform hash checks on VRAM memory blocks once every 120 frames and to mark as dirty the linked textures to VRAM blocks that changed their contents. This is slower than original flycast approach but allows for games to properly update textures correctly.


==What can be improved==
The new kubridge requires enso. If you don't have it, install it. It also has been tested only on 3.60 and 3.65 fw.
*First off, if a working mmap/mprotect implementation will ever come in vitasdk, this will allow us to move to faster code paths in several places of the emulator, allowing us to have faster emulation in general.
*The libretro core also received some updates that offload some calculations from CPU to GPU that are not yet ported in the Vita build. (Mostly related to paletted textures, which not so many games use).
*There's also always room for optimization in the DynaRec as well as some stuffs may be made multithreaded in the future (eg. arm7 emulation).


==Media==
Stick to as low amount of plugins as possible. kubridge requires a lot of memory to work as it should for Flycast which means having a lot of plugins can make it fail to allocate memory and thus causing a crash at boot of the emu.​
<youtube>liC9yygKz7s</youtube>


==Screenshots==
==Screenshots==
https://dlhb.gamebrew.org/vitahomebrews/flycastvita-01.jpg
flycastvita3.png
https://dlhb.gamebrew.org/vitahomebrews/flycastvita-02.jpg
flycastvita4.png
https://dlhb.gamebrew.org/vitahomebrews/flycastvita-03.jpg


==Tweaks & Issues==
==Media==
* The emulator seems to memleak (probably related to some issues clearing some cache during emulation) thus causing games to degrade in performances during long runs and eventually even crashing the emulator due to out of memory. We STRONGLY suggest to take savestates often in order to not lose progresses.
'''Sonic Adventure - Flycast Vita with 1.480 Downlock Rate and Reduced SMC checks''' ([https://www.youtube.com/watch?v=ejQs3o9fvh8 Rinne4Fun]) <br>
* Due to the nature of CHD and CDI dumps (compressed), GDI dumps must be preferred for best performances.
<youtube>ejQs3o9fvh8</youtube>
* It's recommended to use PAL dumps and to stick to TV Composite option for the Cable option. This will make games to run with 25 fps/50 fps as target (Like EU TVs at the time) instead of 30 fps/60 fps. Due to the lower fps target, games will run smoother with these settings.
* The new kubridge requires enso. If you don't have it, install it. It also has been tested only on 3.60 and 3.65 fw.
* Stick to as low amount of plugins as possible. kubridge requires a lot of memory to work as it should for Flycast which means having a lot of plugins can make it fail to allocate memory and thus causing a crash at boot of the emu.​
 
==Compatibility List==
*The compatibility list can be found here: https://flycast.rinnegatamante.it/
*We STRONGLY RECOMMEND people to contribute to its population. You can contribute by reporting your game tests here: https://github.com/Rinnegatamante/flycast-vita-Compatibility/issues


==Changelog==
==Changelog==
'''1.1'''
'''v1.1'''
* Downstreamed to latest official Flycast commit. (BoxArts support has been disabled by default. It's recommended to enable it from emu.cfg solely if you have few roms cause, with a lot of roms, it will cause general instability in the emulator due to mem constraints).
* Downstreamed to latest official Flycast commit. (BoxArts support has been disabled by default. It's recommended to enable it from emu.cfg solely if you have few roms cause, with a lot of roms, it will cause general instability in the emulator due to mem constraints).
* Added Fast GDRom Load option. (Faster loading times in games but may cause issues in some games).
* Added Fast GDRom Load option. (Faster loading times in games but may cause issues in some games).


'''v.1.0.3'''
'''v1.0.3'''
* Replaced AutoPlugin2 warning with a check on kubridge versioning.
* Replaced AutoPlugin2 warning with a check on kubridge versioning.
* Added a check for kubridge existence.
* Added a check for kubridge existence.
Line 86: Line 116:
* Updated to latest vitaGL commit.
* Updated to latest vitaGL commit.


'''v.1.0.2'''
'''v1.0.2'''
* Updated Livearea assets (Thanks to TheIronUniverse).
* Updated Livearea assets (Thanks to TheIronUniverse).
* Added support for microphone.
* Added support for microphone.


'''v.1.0.1'''
'''v1.0.1'''
* AutoPlugin2 check is now just a warning where end users accepts to send help requests for any issue on whose in charge to solve them and not the original authors of the software. It won't prevent anymore from booting the software.
* AutoPlugin2 check is now just a warning where end users accepts to send help requests for any issue on whose in charge to solve them and not the original authors of the software. It won't prevent anymore from booting the software.


'''v.1.0'''
'''v1.0'''
* First Release.
* First Release.


==Credits==
==Credits==
*flyinghead for the amazing emulator and for his constant help addressing key issues with the Vita port and suggesting enhancements to get better performances off the emulator
* gl33ntwine for sorting out the build system on the Vita.
*frangarcj for helping with fixes related to the RetroArch frontend
* flyinghead for creating Flycast and for giving insights on improving the port.
*TheIronUniverse for the Livearea assets used in this release
* TheIronUniverse for the Livearea assets.
* All my patroners for their awesome support.


== External links ==
==External links==
* PSX Place - https://www.psx-place.com/threads/release-flycast-vita-v-1-0-sega-dreamcast-emulator-for-psvita-pstv.38180/
* PSX-Place - https://www.psx-place.com/threads/release-flycast-vita-v-1-0-sega-dreamcast-emulator-for-psvita-pstv.38180/
* Github - https://github.com/Rinnegatamante/flycast-vita
* GitHub - https://github.com/Rinnegatamante/flycast-vita
* VitaDB - https://vitadb.rinnegatamante.it/#/info/605
* VitaDB - https://vitadb.rinnegatamante.it/#/info/605

Revision as of 05:25, 3 Ocak 2023

Flycast Vita
File:Flycastvita2.png
General
AuthorRinnegatamante
TypeConsole
Version1.1
LicenseGPL-2.0
Last Updated2022/10/25
Links
Download
Website
Source

Flycast Vita is a port of Flycast (A popular opensource Dreamcast emulator) for the PlayStation Vita. Due to the nature of the console emulated by this emulator, it's not to be expected a perfect emulation on every available title.

Installation

Requirements:

Install the required plugins:

  • Install kubridge.skprx and fd_fix.skprx by copying kubridge.skprx and fd_fix.skprx to your taiHEN plugins folder and adding two entries to your config.txt under *KERNEL (change accordingly if you are using ur0:tai):
*KERNEL
ux0:tai/kubridge.skprx
ux0:tai/fd_fix.skprx
  • Install libshacccg.suprx, if you don't have it already, by running ShaRKBR33D.

Then install Flycast.vpk using [[VitaShell].

(Optional but strongly recommended) Dump your own DC bios and place it inside ux0:data/flycast/data.​

User guide

You can consult a Compatibility List from this link.​

Suggested Options Setup

On the compatibility list, you can find a perfect options setup for each game. A good starting options setup is the following:

General:

  • Cable: TV Composite
  • Broadcast: PAL
  • Region: Europe

​ Video:

  • Transparent Sorting: Per Strip
  • Fast Sorting: Enabled
  • Automatic Frame Skipping: Normal
  • Shadows: Disabled
  • Fog: Disabled
  • Texture Filtering: Default
  • Use Mipmaps: Enabled
  • Use Simple Shaders: Enabled
  • VSync: Disabled
  • Native Depth Interpolation: Disabled
  • Internal Resolution: 640x480 (Native)​

Audio:

  • Enable DSP: Disabled​

Advanced:

  • CPU Mode: Dynarec
  • Idle Skip: Enabled
  • Use Neon SIMD: Enabled
  • Downclock Ratio: 1.500
  • Self-Modifying Code Checks: Off
  • Enable UPnP: Disabled
  • HLE BIOS: Disabled
  • Multi-threaded emulation: Enabled
  • Fast GDRom Load: Enabled​

If a game has issues during rendering try to change: Cable, Transparent Sorting, Shadows, Fog, Use Mipmaps, Use Simple Shaders, Native Depth Interpolation, Copy to VRAM, Use Neon SIMD options.

If a game crashes during gameplay, try to change: Self-Modifying Code Checks (The more complete the checks, the lower the performances, so be sure to stick to Off when not required and to stick to Reduced when Full is not necessary).

If a game has issues with audio, try to change: Enable DSP (Enabling DSP will lower performances, so be sure to disable it if not required).

Note: In order for most of these settings changes to take effect, you'll need to restart the game.

Tweaks and Issues

The emulator seems to memleak (probably related to some issues clearing some cache during emulation) thus causing games to degrade in performances during long runs and eventually even crashing the emulator due to out of memory. We STRONGLY suggest to take savestates often in order to not lose progresses.

Due to the nature of CHD and CDI dumps (compressed), GDI dumps must be preferred for best performances.

It's recommended to use PAL dumps and to stick to TV Composite option for the Cable option. This will make games to run with 25 fps/50 fps as target (Like EU TVs at the time) instead of 30 fps/60 fps. Due to the lower fps target, games will run smoother with these settings.

The new kubridge requires enso. If you don't have it, install it. It also has been tested only on 3.60 and 3.65 fw.

Stick to as low amount of plugins as possible. kubridge requires a lot of memory to work as it should for Flycast which means having a lot of plugins can make it fail to allocate memory and thus causing a crash at boot of the emu.​

Screenshots

flycastvita3.png flycastvita4.png

Media

Sonic Adventure - Flycast Vita with 1.480 Downlock Rate and Reduced SMC checks (Rinne4Fun)

Changelog

v1.1

  • Downstreamed to latest official Flycast commit. (BoxArts support has been disabled by default. It's recommended to enable it from emu.cfg solely if you have few roms cause, with a lot of roms, it will cause general instability in the emulator due to mem constraints).
  • Added Fast GDRom Load option. (Faster loading times in games but may cause issues in some games).

v1.0.3

  • Replaced AutoPlugin2 warning with a check on kubridge versioning.
  • Added a check for kubridge existence.
  • Increased available memory for the emulator by 6 MBs.
  • Fixed an error causing a crash when attempting to boot unsupported platforms roms. Now it'll nicely error instead.
  • Added Fast Sorting option for Transparency Sorting for a faster but less precise sorting algorithm usage.
  • Updated to latest vitaGL commit.

v1.0.2

  • Updated Livearea assets (Thanks to TheIronUniverse).
  • Added support for microphone.

v1.0.1

  • AutoPlugin2 check is now just a warning where end users accepts to send help requests for any issue on whose in charge to solve them and not the original authors of the software. It won't prevent anymore from booting the software.

v1.0

  • First Release.

Credits

  • gl33ntwine for sorting out the build system on the Vita.
  • flyinghead for creating Flycast and for giving insights on improving the port.
  • TheIronUniverse for the Livearea assets.
  • All my patroners for their awesome support.

External links

Advertising: