BeetleDC Libretro – Updates!

BeetleDC Libretro and BeetleDC OIT Libretro have recently been updated.

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

  • (BeetleDC Libretro) – now requires OpenGL 3.0 core profile (and GLSL 1.30).
  • (BeetleDC Libretro OIT/OpenGL) – Increased compatibility with other GL 4.3 driver implementations.
  • (BeetleDC Libretro OIT) – Several performance improvements.
  • (BeetleDC 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 BeetleDC Libretro developments and more!

RetroArch – Metal video driver for modern macOS!

RetroArch has now gained a Metal renderer! Targeting modern macOS at first. XMB/MaterialUI works, menu shader pipelines work, Slang shaders work thanks to SPIRV-Cross, fonts work, etc!

Previously, RetroArch for OSX/macOS only had an OpenGL video driver. Since Apple will be deprecating OpenGL support in the near future, this Metal video driver essentially future proofs RetroArch for mac!

4DO – 3DO libretro emulator now supports arcade games!

A big breakthrough courtesy of trapexit, who has been adding arcade game support to the 4DO libretro core.

4DO is a 3DO game console emulator. In addition to this, it can now also run 3DO arcade games such as Mad Dog McCree 2.

You can use the mouse in order to simulate the light gun with this game.

See trapexit’s blog article here for more details –

http://spawn.link/3do-arcade-saot-bios/

BeetleDC libretro now supports NAOMI + other additions!

BeetleDC libretro now supports Sega Naomi arcade games! Both BeetleDC and BeetleDC OIT have been updated.

Limited to Sega Naomi 1 for now. Atomiswave to GD-ROM conversion games can also work, some of them might have some issues though.

Sega Naomi

Naomi was an arcade videogame system based on the Sega Dreamcast hardware. While being nearly identical in terms of architecture, it did have double the RAM and fillrate of the home console version.

Naomi became one of the longest lasting arcade systems to be used second only to the Neo Geo AES. Various licensees (such as Capcom, Arc Sys, and even Nintendo) licensed the hardware during its lifespan to produce arcade games with.

How to use it

You will need a NAOMI BIOS file inside your system directory. The BIOS with the best compatibility so far is epr-21576g.ic27. This is a file that is contained inside the MAME NAOMI bios zip. Rename this file to naomi_boot.bin and move it to your ‘system directory/dc directory.

What content to use

You will need roms that worked on nullDC Naomi. These will typically be .dat/.lst or .bin/.lst pairs.

The last value of the .lst file specifies the size of the .dat/.bin file in hexademical value.

Here is an example of the .lst file used for Toy Fighter –

Toy Fighter
“Toy Fighter.dat”, 0x0000000, 0x05800000

You can find the existing .lst files here.

NOTE: MAME ROMS won’t work (yet). Proper Atomiswave roms won’t work, however, most Atomiswave to Naomi GD-ROM conversions should at least work or boot.

Currently existing issues

There are some issues that remain with Naomi support:

  • By default, two arcade sticks are hooked up.
  • There are some video and syncing glitches right now. One of the most immediately apparent is the flickering Naomi boot screen.
  • There is no analog and/or shoulder button support yet for Naomi games.

Videos

Toy Fighter

Dolphin Blue

King of Fighters XI

Dead or Alive 2 Millennium

Street Fighter Zero 3 Upper

Other enhancements

Fast GD-ROM Loading

A new core option called ‘GD-ROM Fast Loading Mode’ has been added. It can severely cut down on loading times, sometimes even removing them almost entirely as can be seen in the game ‘Daytona USA 2001’ here.

Various sound fadeout bugfixes

Through some judiciously applied hacks, the following games no longer suffer from sound fadeout issues:

  • Border Down
  • Bomberman Online
  • Chaos Field
  • Death Crimson OX
  • Fatal Fury/Garou: Mark Of The Wolves
  • Jet Set Radio/Jet Grind Radio
  • Napple Tale
  • Phantasy Star Online
  • Phantasy Star Online Ver. 1
  • Radirgy
  • Segagaga
  • Sonic Shuffle
  • Trigger Heat Exelica
  • WWF Royal Rumble

Graphics fixes

Thanks to the awesome efforts of flyinghead, several graphics glitches have been fixed –

Workaround for Virtua Tennis ball color problem.

Fix – Psyvariar 2, Explosions don’t render correctly

Other changes

Reicast OIT

  • Added an accumulation Pixel Buffer Size core option. You can set this to 512MB, 1GB or 2GB, depending on how much VRAM your video card has. For higher resolutions to output correctly, you might need to increase this to the highest value possible.
  • House Of The Dead 2 failed a verify assert – should boot and be playable now.
  • Rebase ADPCM decoding.
  • Reicast (non-OIT)

  • Multipass rendering is now enabled by default. Plenty of games need this for accurate rendering and the performance tradeoff should be minimal.
  • House Of The Dead 2 failed a verify assert – should boot and be playable now.
  • Rebase ADPCM decoding.
  • What’s next?

    We intend to have the next version of RetroArch available soon. On top of that, despite numerous delays, Supermodel will finally be coming soon! We felt it was right to get Sega Naomi up and running first before we unveil that!

    Introducing BeetleDC OIT libretro core + updated BeetleDC regular core

    The BeetleDC 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 BeetleDC cores:

    • BeetleDC regular
    • BeetleDC OIT

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

    BeetleDC OIT: Contains an OpenGL renderer that requires OpenGL 4.3, and as a result is only available for Windows and Linux. BeetleDC 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, BeetleDC and BeetleDC 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?

    BeetleDC regular

    BeetleDC 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 BeetleDC regular come courtesy of flyinghead.

    BeetleDC OIT

    BeetleDC OIT uses an entirely new graphics renderer written by flyinghead targeting OpenGL 4.3. In addition to boasting all the features that BeetleDC 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 BeetleDC 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 because 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 BeetleDC’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 (BeetleDC and BeetleDC 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 (BeetleDC and BeetleDC 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 BeetleDC 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 BeetleDC OIT, and is not available in the regular BeetleDC 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 BeetleDC 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