Flycast WinCE Libretro – Experimental core released!

Courtesy of flyinghead, today we’re releasing a special version of Flycast with Windows CE support enabled! Our reason for releasing this is that we want users to report back as many issues as possible so the kinks can be ironed out.

What’s this about?
Windows CE was an option available to Dreamcast developers that made it much easier to port their game from PC to Dreamcast. Windows CE is/was a subset of Win32, stripped down so that it could be used on low-powered embedded devices instead of expensive desktop computers. PC developers that were used to dealing with DirectX on Windows PC could easily convert their game over to Dreamcast using Windows CE. Hence why you saw a lot of ports at the time from PC-centric western developers that would normally not touch game consoles.

Windows CE emulation (or rather, full MMU support) has been one of the biggest things missing from open source Dreamcast emulation up until now. It is often not enabled in main builds because emulating it requires emulating the MMU (Memory Management Unit) of the Dreamcast, which makes emulation much slower. So far, only Demul (a closed-source Dreamcast emulator) has something resembling full MMU support.

Now finally, open source is beginning to catch up. About time. Dreamcast is over 20 years old at this point, the people that grew up with it are all getting older as time goes on, and it shouldn’t taken another 10 years for all of this stuff to be properly preserved and documented. Flyinghead has done an absolutely incredible job over the past year or so in singlehandedly turning Flycast from something that was worse than nullDC in compatibility and graphics accuracy into the closest we have to an actual competitor to Demul, and we couldn’t be more happy with that. He spent a lot of time in making sure this release was ready today, and we hope you will put it through its paces.

How to get it

1) First, make sure that you have all core information files installed. Go to RetroArch’s main menu, select ‘Online Updater’, and select ‘Update Core Info Files’.

2) Go to ‘Online Updater’ -> ‘Update Cores’. Scroll down the list until you reach ‘Sega Dreamcast/NAOMI (Flycast WinCE)’. Install it.

System requirements

Flycast WinCE has higher system requirements than the regular version. The most important things you need to know:

  1. You can only expect borderline acceptable performance right now on PC x64 systems. ARM64 and ARM 32bit will likely be too slow at Flycast WinCE to be playable.
  2. The Linux x64 version right now is the fastest of them all. The macOS x64 version should also be comparable in performance.
  3. The Windows x64 version is currently much slower than the Linux/Mac versions.

Consider this core a work-in-progress. Bugs are to be expected, fairly demanding requirementsare likely to be expected for now. Things can only get better from here.

Compatibility

Below is by no means an exhaustive list of all games on Dreamcast that used Windows CE under the hood, along with their current playable status in Beetle WinCE at the time of this writing.

The most complete listing we found so far of Dreamcast WinCE games can be found here.

4×4 EvolutionPlayable
Name Status
Atari Anniversary Edition Playable
Armada Playable
Bang! Gunship Elite Playable
Bust-A-Move 4 Playable
Caesars Palace 2000: Millennium Gold Edition Playable
Championship Surfer Playable
Ducati World Racing Challenge Issues
Half-Life Playable
Happy Lesson Playable
Hidden & Dangerous Playable
KISS: Psycho Circus: The Nightmare Child Playable
Kita e. White Illumination Playable
Maximum Pool Playable
Midway’s Arcade Greatest Hits Volume 1 Playable
Midway’s Arcade Greatest Hits Volume 2 Playable
Nightmare Creatures 2 Playable
Q*bert Issues
Railroad Tycoon II Playable
Railroad Tycoon II (PAL) Playable (set Broadcast to PAL)
Resident Evil 2 Playable
Sega Rally 2 Playable (DIV match must be disabled)
Sno-Cross Championship Racing Playable
South Park: Chef’s Luv Shack Playable
Spirit of Speed 1937 Playable
Starlancer Playable
The Next Tetris Playable
Tomb Raider: The Last Revelation Playable
Tomb Raider Chronicles Playable
Tom Clancy’s Rainbow Six Playable
Virtua Cop 2 Playable
Wild Metal Playable
Who Wants To Beat Up A Millionaire Playable
Worms Armageddon Playable (DIV match must be disabled)
Worms World Party Playable

Notes

  1. Many Windows CE games are region-sensitive. Make sure to set the region and broadcast to the right ones – as most Windows CE games won’t run in a different region (although Default might often times work fine). You can change these settings by going to Quick Menu -> Options.
  2. If performance is lacking, try the Threaded Renderer, this can really help. You can enable or disable this by going to Quick Menu -> Options.
  3. Some Windows CE games will flat out not run if DSP is not enabled. So in case a game doesn’t work, try first turning that on.
  4. Enabling DIV matching can lead to some Windows CE games outright not working. As a general precaution, we advise that you leave DIV matching off. Sega Rally 2, for instance, requires that you leave DIV matching off.
  5. Other enhancement/hackish features, like Fast GD-ROM Loading, are best left off in case you experience compatibility issues.

Screenshot gallery

Videos

Check out these videos by flyinghead –

Flycast Libretro now supports online multiplayer! Zero-configuration online Dreamcast gaming for the first time ever!

Flycast Libretro has now gained modem and PPP support. It leverages dreamcastlive.net which makes it possible to still play these games while their original servers are down.

Grab the latest core from the buildbot in order to use this! It should work on Windows, Linux, Android, and potentially even macOS seamlessly without having to input an IP address, thanks to true zero-configuration multiplayer! To our knowledge, this is the first time a Dreamcast emulator offers true zero-configuration multiplayer support like this. Demul requires a complicated TAP driver/OpenVPN configuration, and modem support was not implemented yet since the last time we checked.

How to configure online

In this video, I will boot up one of the games that allows you to set your ISP network information. You will need to do this before online multiplayer will work in Dreamcast games such as Phantasy Star Online.

One of the games that lets you do this is Quake III Arena. Other games that allow you to do this include (but are not limited to) Ooga-Booga and Toy Racer.

Input any username and password combo you want, and only input a local phone number. It can be completely bogus, it can be 666 or 888, whatever you want.

After that, you press Dial. These details will now be saved to your NVRAM, and from there, this same ISP info will be used for every subsequent multiplayer game onwards, such as Phantasy Star Online.

BTW – if you are on Windows, you might get a warning at some point from Windows Firewall if you want to allow a connection – select ‘Yes’.

Phantasy Star Online gameplay footage

In this session, you see me and flyinghead meeting up in a lobby in Phantasy Star Online and doing some hunts together! We are both using the same version of Flycast Libretro inside RetroArch.

As you can see, online works surprisingly well! All kudos to flyinghead for implementing the code necessary to be able to emulate this!

Hopefully in the near future we will have keyboard and mouse support to complement all this! It is already in flyinghead’s own branch of flycast right now.