It’s been a pretty busy end of the year for the BeetleDC core. Most of the work consisted in finalizing and improving support for Naomi and Atomiswave arcade ROMs.
Naomi / Atomiswave
Naomi GD-ROMs are now supported and this adds more than 120 Naomi games to the list of supported arcade games.
ROMs archived with 7zip as well as parent/split ROMs are now supported as well.
Another new feature is the use of per-game input descriptors: so instead of binding “Button 1” or “Axis 1”, you’ll have descriptive names such as “JUMP” or “STEERING WHEEL”. Not all games have input descriptors but more will be added in the future (and pull requests are welcome.)
In addition, many bugs have been fixed allowing many arcade games to now be fully playable: 18 Wheeler, Airline Pilot, Cosmic Smash, House of the Dead 2, Jambo Safari, Ninja Assault, Shooting Love, Virtual Athlete, Virtual On Oratorio Tangram and probably more.
Dreamcast
On the Dreamcast front, a recent but notable improvement is the automatic setting of the BIOS date and time at boot. So you should never see the date/time setting screen again. In the same area, a new core option allows to choose the BIOS language, so you don’t have to boot the BIOS to change it.
Using the Libretro disk control interface, disk swapping has been implemented. When asked by the game, you can now virtually eject the current disk and select a new one without restarting. Some multi-disk games require this feature such as D2 or Pop’n Music 3 and 4 append disks.
Another new feature for both console and arcade is the Synchronous Rendering core option. This option is only active with Threaded Rendering. When activated, it will pause the emulation thread instead of dropping a frame, which results in less dropped frames and thus a better and smoother frame rate.
Finally, Restart has been implemented so one can reset a game without having to restart the front-end.
Thanks to flyinghead, BeetleDC Libretro has now gained Sammy Atomiswave support! Sammy Atomiswave was an arcade system board based on the Dreamcast/Sega NAOMI hardware. A lot of SNK Playmore’s flagship games transitioned from the ageing Neo-Geo hardware to the much more modern Naomi-based hardware, such as Samurai Shodown, King of Fighters, Metal Slug and so on.
Both MAME ROMs and Demul-compatible roms should work. Note that as of right now, only a limited selection of Atomiswave games work. More will be added later today/tomorrow.
Here is a sampling of some of the games that already work. Shown here are Guilty Gear Isuka, Guilty Gear X, and Metal Slug 6.
Flyinghead is adding MAME ROM support to the arcade side of BeetleDC Libretro.
Here is what has currently been implemented:
NAOMI M1 cartridge support
NAOMI M2 cartridge support
NAOMI M4 cartridge support
Things you need to know
Right now, only non-merged romsets work. A merged rom is a ROM without parent, it contains all the files needed.
NAOMI M4 cartridges require a special BIOS file to be put inside your System directory. The M4 bios should be in a “naomi.zip” file in the BIOS folder (/dc ). The file in specific which hsould be inside that zip file is called ‘epr-21576h.ic27’.
Other important additions/changes
in the past, NAOMI games would only work with BeetleDC Libretro if you loaded .lst files. .lst files are no longer necessary now. You should be able to run an arcade game with BeetleDC Libretro using the plain .bin/.dat file instead now. So theoretically it should now be capable of just loading Demul-compatible ROMs instead.
Ring Out 4×4 now allows for up to 4 player support due to adding dual I/O board support for this game.
What are the list of MAME ROMs that are compatible?
Keyboard support has now been implemented by flyinghead! In this video you see us testing the game Typing Of The Dead, which relies on a keyboard as its primary input device..
In order to play this game, make sure the keyboard is set to Port A of the Dreamcast. You can see us doing this in the video by going to the Quick Menu, selecting ‘Controls’, and setting the first port to ‘Keyboard’. Now restart the core and the game. You should now be able to play the game.
Game focus toggle
Quick tip: RetroArch by default binds a lot of keyboard keys to hotkeys. In order to be able to use the keyboard in full, try to bind ‘Game focus toggle’ to a key. You can do this by going to Settings – Input Hotkeys, and binding ‘Game focus toggle’ to any key you want.
How this will work is as follows: if you press the game focus toggle, you will be in ‘game focus’ mode. In this mode, none of the hotkeys will work, and you can use every key of the keyboard. When you want to go back to the RetroArch hotkey mode, you press the ‘game focus toggle’ key again in order to deactivate game focus mode.
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
Cookie Consent
We use cookies to improve your experience on our site. By using our site, you consent to cookies.
Websites store cookies to enhance functionality and personalise your experience. You can manage your preferences, but blocking some cookies may impact site performance and services.
Essential cookies enable basic functions and are necessary for the proper function of the website.
Name
Description
Duration
Cookie Preferences
This cookie is used to store the user's cookie consent preferences.
30 days
Statistics cookies collect information anonymously. This information helps us understand how visitors use our website.
Google Analytics is a powerful tool that tracks and analyzes website traffic for informed marketing decisions.
Contains information related to marketing campaigns of the user. These are shared with Google AdWords / Google Ads when the Google Ads and Google Analytics accounts are linked together.
90 days
__utma
ID used to identify users and sessions
2 years after last activity
__utmt
Used to monitor number of Google Analytics server requests
10 minutes
__utmb
Used to distinguish new sessions and visits. This cookie is set when the GA.js javascript library is loaded and there is no existing __utmb cookie. The cookie is updated every time data is sent to the Google Analytics server.
30 minutes after last activity
__utmc
Used only with old Urchin versions of Google Analytics and not with GA.js. Was used to distinguish between new sessions and visits at the end of a session.
End of session (browser)
__utmz
Contains information about the traffic source or campaign that directed user to the website. The cookie is set when the GA.js javascript is loaded and updated when data is sent to the Google Anaytics server
6 months after last activity
__utmv
Contains custom information set by the web developer via the _setCustomVar method in Google Analytics. This cookie is updated every time new data is sent to the Google Analytics server.
2 years after last activity
__utmx
Used to determine whether a user is included in an A / B or Multivariate test.
18 months
_ga
ID used to identify users
2 years
_gali
Used by Google Analytics to determine which links on a page are being clicked
30 seconds
_ga_
ID used to identify users
2 years
_gid
ID used to identify users for 24 hours after last activity
24 hours
_gat
Used to monitor number of Google Analytics server requests when using Google Tag Manager
1 minute
Marketing cookies are used to follow visitors to websites. The intention is to show ads that are relevant and engaging to the individual user.
A video-sharing platform for users to upload, view, and share videos across various genres and topics.
Registers a unique ID on mobile devices to enable tracking based on geographical GPS location.
1 day
VISITOR_INFO1_LIVE
Tries to estimate the users' bandwidth on pages with integrated YouTube videos. Also used for marketing
179 days
PREF
This cookie stores your preferences and other information, in particular preferred language, how many search results you wish to be shown on your page, and whether or not you wish to have Google’s SafeSearch filter turned on.
10 years from set/ update
YSC
Registers a unique ID to keep statistics of what videos from YouTube the user has seen.
Session
DEVICE_INFO
Used to detect if the visitor has accepted the marketing category in the cookie banner. This cookie is necessary for GDPR-compliance of the website.
179 days
LOGIN_INFO
This cookie is used to play YouTube videos embedded on the website.
2 years
VISITOR_PRIVACY_METADATA
Youtube visitor privacy metadata cookie
180 days
You can find more information in our Cookie Policy and .