Reicast Libretro – Updates 26-7-2018

Reicast Libretro and Reicast OIT Libretro have recently been updated.

Here is a listing of all the changes/fixes/improvements:

  • (Dreamcast/Compatibility) Eldorado Gate – Broken opening FMV fixed (link)
  • (Dreamcast/Compatibility) Demolition Racer now works (link)
  • (Dreamcast/Compatibility) Redline Racer – Graphics bugs fixed (link)
  • (Dreamcast/Compatibility) Fixed rendering issues with Tokyo Xtreme Racer games (link)
  • (Dreamcast/Compatibility) Conflict Zone – Modern War Strategy now works
  • (NAOMI/Compatibility) Metal Slug 6 now works without graphics bugs

Reicast OIT – Increased compatibility with AMD/Intel GPU drivers

AMD GPU owners on Windows/Linux and Intel HD users on Linux/Mesa should probably be able to use the Reicast OIT core now, as several GLSL compliance bugs have been fixed by now.

Note that Reicast OIT can still be very buggy for Intel HD users on Windows, and slow to boot. The renderer really lends itself better to discrete GPUs from AMD/NVidia.

Render to texture upscaling!

Previously, games which rendered to texture (such as Dead or Alive 2 or Crazy Taxi) would always output at 1 x native resolution. Now, you can set the upscaling factor. Games which render the screen to a texture should look much better as a result, provided your GPU is up to the task.

An example – here is a comparison of the Crazy Taxi pause screen – left is 1x native resolution, right is 4x upscaled –

xBRZ Texture upscaling

This new setting allows you to upscale all the textures in a game up to 6 x their original resolution using the xBRZ texture filtering algorithm! See it in action with Shenmue in this video below –

Reicast Libretro – Updates!

Reicast Libretro and Reicast OIT Libretro have recently been updated.

Here is a listing of all the changes/fixes/improvements:

  • (Reicast Libretro) – now requires OpenGL 3.0 core profile (and GLSL 1.30).
  • (Reicast Libretro OIT/OpenGL) – Increased compatibility with other GL 4.3 driver implementations.
  • (Reicast Libretro OIT) – Several performance improvements.
  • (Reicast Libretro OIT) – Fixed graphics issues in Resident Evil 3: Nemesis (link).
  • (Reicast Libretro OIT) – Fixed graphics issues in Dino Crisis (link).
  • (Dreamcast/PVR2) Bump mapping implemented (used in Rayman 2/Shenmue 2) (link).
  • (Dreamcast/PVR2) Trilinear filtering implemented (needed by NFL 2K2 in particular to display some ground textures correctly).
  • (Dreamcast) Bomberman Online – Fixed glitching title screen (link).
  • (Dreamcast/Compatibility) Shenmue 1 crashes fixed (thanks to x64 Dynarec CheckBlocks implementation)
  • (Dreamcast/Compatibility) Shenmue 2 crashes fixed (thanks to x64 Dynarec CheckBlocks implementation)
  • (Dreamcast/Compatibility) Alone In The Dark: New Nightmare – improvements to YUV / palette textures – no more downgraded colors in backgrounds (link).
  • (Dreamcast/Compatibility) Dead or Alive 2 LE (Japan) crashes fixed.
  • (Dreamcast/Compatibility) Draconus – Cult Of The Wyrm/Dragon’s Blood – fogging graphics glitch fixed (link).
  • (Dreamcast/Compatibility) Evolution: The World of Sacred Device (UK) now renders flat shaded polygons correctly (link).
  • (Dreamcast/Compatibility) Shadow Man works now. Set Cable Type to VGA or otherwise it will crash after the Dreamcast boot screen.
  • (Dreamcast/Compatibility) NBA 2K/2K1/2K2 now work.
  • (Dreamcast/Compatibility) Napple Tale crash no longer happens after leaving the circus.
  • (Dreamcast/Compatibility) Ooga Booga now goes ingame, some issues still remain though.
  • (Dreamcast/Compatibility) Soldier Of Fortune AI bugs fixed (link).
  • (Dreamcast/Compatibility) Test Drive Le Mans/Le Mans 24 Hours now works, still some audio glitches though.
  • (Dreamcast/Compatibility) Looney Tunes Space Race now works.
  • (Dreamcast/Compatibility) Wacky Races now works, still has some graphics glitches though.
  • (Dreamcast/Compatibility) San Francisco Rush 2049 – screen display issues fixed – Screen cropped at the top (link).
  • (Dreamcast/Compatibility) Fur Fighters now goes ingame, some issues still remain though.
  • (Dreamcast/Compatibility) Twinkle Star Sprites no longer unplayably slow due to excessive logging.
  • (Naomi) Analog input implemented for games like Monkey Ball/Virtua Tennis 2.
  • (Naomi) EEPROM saving/loading implemented.
  • (Naomi/Compatibility) Hokuto No Ken / Fist Of The North Star now works.
  • (Naomi/Compatibility) King of Fighters New Wave – no longer crashes during fights, there are still display glitches though.

Also be sure to check our Youtube channel, where you can view a lot of videos on recent Reicast Libretro developments and more!

Introducing Reicast OIT libretro core + updated Reicast regular core

The Reicast libretro core has seen several big improvements as of late, and we thought it would be remiss of us if we did not take this opportunity to talk about it.

There are two cores now

There are now two Reicast cores:

  • Reicast regular
  • Reicast OIT

Reicast regular: Contains an OpenGL renderer that requires OpenGL 2.x on the desktop and GLES 2.x on mobile.

Reicast OIT: Contains an OpenGL renderer that requires OpenGL 4.3, and as a result is only available for Windows and Linux. Reicast OIT might have significantly increased system requirements, but in return you get much more accurate graphics which tend to fix nearly all the issues that plague Dreamcast graphics with the regular version.

How to get it

In RetroArch, go to Online Updater -> Update Cores. From there, Reicast and Reicast OIT should be available for the following platforms:

  • Linux
  • Windows
  • Mac (Reicast OIT is not available for Mac due to no GL 4.3 support)

What is new/improved in both Reicast versions?

Reicast regular

Reicast regular’s OpenGL renderer has received many improvements that greatly increases the graphics accuracy and squashes many graphics bugs that plagued games in the past.

Here are some of the Dreamcast’s GPU features that are now implemented:

  • Tile clipping support.
  • Fogging support.
  • Volume modifier shadow support.
  • Multipass rendering.
  • Render to texture buffer.
  • Log 2 depth buffer.

Some additional enhancements include a log 2 depth buffer, fixing much of the polygon glitching that could happen in the distant background in many games.

All of these additions to the existing GL2 renderer in Reicast regular come courtesy of flyinghead.

Reicast OIT

Reicast OIT uses an entirely new graphics renderer written by flyinghead targeting OpenGL 4.3. In addition to boasting all the features that Reicast regular also enjoys as of this date, it also has the additional advantage of incorporating Order Independent Transparency, so that we don’t have to do hacky and error prone alpha sorting hacks, which is our main resort in Reicast regular.

  • Tile clipping support.
  • Fogging support.
  • Volume modifier shadow support.
  • Multipass rendering.
  • Render to texture buffer.
  • Log 2 depth buffer.
  • Order independent transparency.
  • Two-volume mode support.

NOTE: This requires a compatibility context for OpenGL 4.3. You might encounter issues with Intel/AMD GPUs right now on Linux using Mesa drivers since they require core context. Core context cannot currently be used becasue there are still graphic bugs to be solved when using this.

Showcase of new emulated features

Flyinghead has a terrific fork of Reicast that dramatically increased the rendering accuracy of Reicast’s OpenGL renderer. We backported these features with the gracious help of flyinghead. All kudos goes to him.

Tile clipping support


The Dreamcast’s PVR2 had a tile clipping GPU feature that was used to obscure portions of the screen. It was cheaper to keep rendering portions of the screen that were not meant to be seen by the user and just clip them away instead of deciding not to render them at all. This was previously unimplemented, which led to all sorts of graphics glitches. This has now been finally implemented in both cores.

Fogging support


The Dreamcast had a 128-bit fogging table that games could take advantage of. Plenty did, such as Cannon Spike, Blue Stinger, Resident Evil: Code Veronica, Virtua Fighter 3tb, and more games. This is now finally implemented for both cores.

Volume modifier shadow support


The Dreamcast made use of volume modifiers in order to simulate shadows in many games. This was previously either completely unimplemented or very buggily rendered. Volume modifiers are now correctly implemented in both cores (Reicast and Reicast OIT). Performance costs should be minimal and you definitely notice the shadows being cast now by characters and other objects.

Multipass rendering


The game V-Rally 2 relies on multipass rendering for rendering the UI elements on top of the game screen. This has finally been emulated on both cores (Reicast and Reicast OIT).

Render to texture buffer


Not only has render to texture being reimplemented (leading to much faster performance), but certain games such as Tony Hawk’s Pro Skater 1/2 would render to VRAM for rendering shadows. The upshot of this is that the shadow looks much more convincing vs. merely using volume modifiers in order to simulate shadows. This feature has been finally implemented in both cores.

Log 2 depth buffer


Thanks to the logarithmic depth buffer, many rendering bugs have been fixed. Some games have been completely fixed as a result, such as Cannon Spike, while others such as Soul Calibur no longer have the scenery in the background glitch out.

Note that this relies on gl_FragDepth being available. This might become an issue when we bring the Reicast libretro core to mobile, since it’s not a part of the GLES2 spec and might require either extensions or GLES3 support.

Order Independent Transparency

NOTE: This feature is exclusive to Reicast OIT, and is not available in the regular Reicast core.


Other improvements

Date/time saving is finally fixed


Finally you don’t have to keep inputting date/time again whenever starting a game with the Reicast cores.

Be sure to set a correct date/time, as entering a wrong date might lead to it not being able to save.

Analog triggers

The core finally supports analog triggers. The Dreamcast had analog L/R triggers, previously we only had digital trigger simulation, where the L1/R1 would simulate 50% press of the trigger and L2/R2 would be a 100% press of the trigger. While this mode is still available if you enable the option ‘Digital Triggers’, you can also now just take advantage of the new digital trigger capabilities.

In addition to this ,deadzone issues should be fixed now, so there should hopefully be no more analog input disparities between Xbox pads and PS4 pads.

Videos