paleface [sys=PC; cat=Emulation; reg=NA] |
| | https://github.com/flyinghead/flycast Dreamcast emulator. Rudimentary UI but seems to get the job done. Open source, hi-def support, lots of graphics options, can turn off filtering (ie set Video - Texture Filtering - Force Nearest Neighbor). Apparently can run from the command line: https://github.com/TheArcadeStriker/flycast-wiki/wiki/Configuration-files-and-command-line-parameters#launching-game-from-command-linebatch Apparently supports "cheats" that can do things like stretch (:p) to ultrawidescreen and enable 60 fps in Metropolis Street Racer, for instance: https://www.youtube.com/watch?v=iE5-QU24B9Y&t=23s Various config settings touted as input delay minimizers--have not done comparison testing of these: (Have to remember to hit the "Done" button at the top left of the Settings window to save settings changes!) - Video - Delay Frame Swapping I unchecked it; apparently https://forums.libretro.com/t/flycast-delay-frame-swapping/28521 having it on may cause stuttering and "you only need it enabled when threaded rendering is on" - Advanced - Other - Multi-threaded emulation I unchecked it; apparently "threaded rendering" https://github.com/libretro/flycast/issues/738 adds a frame of input delay when enabled, and this was the only setting that seemed like it might be that - Video - Texture Upscaling - Max Threads I'm not using texture upscaling anyway (Texture Upscaling set to "1"), but this was the only other option seeming to refer to threads, so I changed it from 3 to 1 just in case - Video - Graphics API - Vulkan Several sources ( https://forums.libretro.com/t/input-lag-with-flycast/27986/3 , https://wiki.gbl.gg/w/Help:Flycast_GGPO#Emulator_Video_settings for instance ) mention Vulkan as the low-latency option here (the other options are OpenGL, DX9, and DX11, which I think was the default) - Video - VSync I unchecked it; was mentioned in documentation http://flycast.dojo.ooo/faq.html#input-latency as the thing to do for minimizing input delay - limit fps to 59.94 Limiting the emulator's framerate without using VSync is not a function Flycast has, although the doc was hopeful on adding it some day; recommended doing it via video card settings--my Nvidia Control Panel only allows forcing integer frame rates though--or Riva Tuner Statistics Server https://www.guru3d.com/files-details/rtss-rivatuner-statistics-server-download.html -- I installed it, seems okay |
|
|
| | I'd been expecting to have emulation give me about two frames of input delay in excess of what I'd get in the same game on the actual Dreamcast--that was the impression I cobbled together from a few mentions of frame performance found via Google. In my own just-now preliminary rough test, in JP SoulCalibur I got 5 frames of input delay on DC, and 3 frames of input delay in Flycast on my laptop.* Used HRAPV 2017 stick for both. Well heck! That was with vsync off of course, so there's some tearing, but jeez I'll take that, that's nuts. Stays the same in Flycast even if I turn on widescreen and crank up the internal resolution. This is mind-blowing. If I can get the games I could conceivably want to play dumped** (SC, JoJo's, CvS1&2, MvC2, GGX), Flycast will be my Dreamcast and my actually DC'll be a laptop stand*** and standby GD-ROM dumper. *I might be adding a frame or so in my count; what really matters to me is the comparative score. I'm starting counting delay after the first full frame AFTER the button on the stick is fully depressed, 'cause not having a wired-up LED, that's kind of the earliest sure sign I can read in the ~60 fps cell phone video I'm counting from: so button down, advance a frame, no more downward movement, that's frame "zero," advance a frame, and then this is the frame I count as 1 frame of delay, and so on. **Ordered one of those seemingly ubiquitous white "DC SD Adapter V2" SD card adapters that plugs into that weird port on the back of the DC--below the power socket and to the right of the AV socket--off of the most well-reviewed seller on Amazon, but hadn't paid attention to the arrives-by date: 5-7 weeks. Turns out it's shipping from China. Free shipping sure goes far these days! = o ***(The DC has been just about perfect as a laptop stand; even the slight convexity of the lid probably aids laptop cooling ^ _^ -- I don't use the actual laptop keyboard so the rounded wobble doesn't matter.) |
|
|
| | Max internal resolution it's allowing me in widescreen (I'm running 1080p desktop resolution) is 9x DC 480 widescreen default, 7680x4320. Raising the internal resolution allows Flycast to use smaller "pixels" to represent the game pixels; going higher than your screen resolution smooths out the approximation (but not blurring/aliasing, since I have "Force Nearest Neighbor" on), giving nice crisp lines. Can also drop to 1/2 resolution for (in SC VGA, anyway) a 240p super low-res look--but that does render SC Practice mode's bitmap text unreadable, for instance. Flycast only does widescreen resolutions fullscreen, not windowed, which is a little curious. This Video - Widescreen option is not stretched, it just keeps drawing background in what would have been 16:9's black sidebars; may get some pop-in of objects as they cross into the regular 4:3 viewing area. A further "Super Widescreen" option says it will use stretching to fill additional width on screens that physically support ratios wider than 16:9; you can also use "Video - Widescreen Game Cheats" to enable (says the help) "16:9 anamorphic format" with "horizontal screen stretching." |
|
|
| | Oh shoot if it's really able to drop the input delay below DC levels I'll have to try DC *Double Impact* and *3rd Strike* too; those have cool additional options on DC hardware but at least several frames more input lag than other platforms. |
|
|
| | Two other supposed optimizations I made: - In Nvidia Control, 3D Settings - Program Settings, I set flycast.com to Low Latency Mode = Ultra Power Management Mode = Prefer Maximum Performance - In Windows Explorer, I right-clicked flycast.exe, selected Properties, and in the Compatibility tab of the Properties window, checked "Disable fullscreen optimizations" |
|
|
| | https://www.amazon.com/dp/B09DPFCM9B "XHSESA Practical SD Card Reader Adapter with CD for Sega Dreamcast Dreamshell V4.0 Game Machine Accessories" http://www.dc-swat.ru/page/dreamshell/ "DreamShell 4.0 RC 4 Boot Loader" http://www.dc-swat.ru/download/dc/ds/4.0/DreamShell_4.0.0_RC4_and_Boot_Loader.7z extract to root of SD card http://www.dc-swat.ru/forum/thread-3003-post-35504.html#pid35504 Partition name: Dreamcast File system: FAT32 Cluster size: 64KB others say 32KB This video used 32KB (Windows default?): https://youtu.be/sAX-_Vzq6mg I *think* I used 64. (That video author, who I think just used Window's Format right-click option in the video, linked a commenter to Gui Format https://gbatemp.net/download/gui-format.33869/ for formatting a 128 GB card--oh, that's for SDXC cards, which are cards larger than 32GB; so for my 16 GB card I'd just use Windows' right-click "Format" command) Can use the microSD in the SD adapter in the DC SD Adapter. Samsung 32 GB card didn't work. Blue 16 GB Micro [???] card worked fine. Shipped from China with Yanwen. Pitney Bowes CA to NV. Finally by USPS. Amazon had said shipping was 5-7 weeks. Took 10 days total. ~~~~~~~~~~~~~~~~~~~~ https://www.reddit.com/r/RetroArch/comments/k2jcvq/how_to_get_saves_working_with_flycast/ BsLeNuL Monthly Top 10% Karma+3 · 3 yr. ago · edited 3 yr. ago .dci/.vmi is a save file, you'll need to "inject" it in a VMU file (which contains multiple save files), you can use VMU Explorer for this: http://bswirl.kitsunet.org/tools/download/vmuexplorer.rar VMUs are stored by default in retroarch/system/dc/ folder. Backup your VMUs first if you care, just in case something goes wrong! Open VMU Explorer and load the VMU file (e.g. vmu_save_A1.bin for controller 1 port 1). File > Import, select either "*.VMI" or "*.DCI" in bottom right and load the save file. File > Save VM. And done, the save file should be imported in the VMU file :) I tried with the 1st save from gamefaqs, and it worked fine. User avatar level 2 Rio_Evenstar · 10 mo. ago Because the link only works on PC it seems heres another 1 https://segaretro.org/Special:FilePath/Vmuexplorer.rar ~~~~~ I downloaded the Segaretro one, I think. With VMU Explorer, needs a VMI file to import the .VMS I dumped from DC. So make a save just using Flycast first, export it, copy its .VMI into my dumped VMU folder alongside my dumped .VMS, then import the .VMI from there after opening Flycast's virtual VMU save (in data folder) in VMS Explorer. ~~~~~~ Used it to dump a Dreamcast game successfully! I got this to dump a retail Dreamcast game--the Japanese release of SoulCalibur, with my Japanese Dreamcast--in order to play the game in an emulator on my PC. And it worked! I was also able to dump my save file from the Dreamcast VMU and import that into the emulator as well, taking up my progress on PC from right where I'd left off on DC. There are some things to note, as this kit comes with no instructions: just the "DreamShell Version 4.0" CDR, and the "DC SD Adapter V2" device: - The CDR only has the DreamShell boot loader on it, not the DreamShell program itself - You have to supply your own SD card to put in the adapter. I had a 16 GB "Micro Center" MicroSD card w/ SD card adapter, which worked fine. I formatted it in FAT32, 64 kb cluster size using Windows' right-click "Format" command. A 32 GB Samsung MicroSD card did NOT work--the DreamShell boot loader reported "No SD card found" with that one. - Google the DreamShell home page, download "DreamShell 4.0 RC 4 Boot Loader" from it and put its contents into the root of the SD card. - Put the SD card in the DC SD Adapter V2 (it has both Micro and SD-sized card slots; I used the SD-sized one with the MicroSD card's own SD-card adapter thingy), put the DC SD Adapter V2 in the DC (it's the port in the lower right corner on the back of the DC, below the power port and to the right of the A/V port), and put the DreamShell CDR in the DC's GD-ROM drive - When the DC is powered on, a red light appears on top of the Adapter V2, if it's plugged in; mine seemed to have a fairly shallow socketing area, but held firmly once it got in there - If your SD card is set up correctly with the DreamShell program on it, the DC should boot from the boot loader CDR, then automatically load DreamShell from the SD card, and you'll find yourself in DreamShell's Windows-like GUI, with icons of various utilities available. If it is unable to load the program from the SD card, you'll end up on a "DreamShell Boot Loader" screen with two options for "Load Boot Loader" (or something like that): RAM and CD Rom--but both will probably be grayed-out, because the DreamShell program is not on them. When I ended up there, it was because it just couldn't read my Samsung SD card, for whatever reason. |
|
|
| | Full screen Display Capture did not work in OBS--first frame only showing for the whole time. |
|
|
| | Game Capture recording works in OBS. : ) |
|
|
| | The actual VMU explorer page on Sega Retro is https://segaretro.org/VMU_Explorer |
|
|
| | Flycast can save settings per game, so you can have graphics settings, controls, etc, customized per game. MAME (see entry 1541) can do that, but not a whole lot of other emulators I've tried have been able to. |
|
|
| | (I kept calling the DC SD Adapter V2 "Card Reader" instead of "Adapter." : P) |
|
|
| | Extremely crude, definitely unscientific comparison input lag testing of some Japanese Dreamcast fighting games on my particular set up. On my set-up, Dreamcast emulator Flycast ran my Dreamcast fighting games with about 2.5 frames less input lag than the actual Dreamcast, a frame or two less delay than a NEOGEO MVS (KOF 2000), and about a frame less delay than MAME 0.255 (arcade versions of SFIII 2nd & 3rd, and KOF 2000). ~ Frames of light punch input lag on my set-up: Capcom vs. SNK Pro Dreamcast: 3-4 Flycast: 1 Capcom vs SNK 2 Dreamcast: 3-4 Flycast: 1 Guilty Gear X Dreamcast: 3 Flycast: 1 JoJo's Bizarre Adventure - Heritage for the Future Dreamcast: 4 PS3 demo: 3 Flycast: 1-2 Marvel vs. Capcom 2 Dreamcast: 3 PS3: 2-3 Flycast: 1 SoulCalibur Dreamcast: 4 Flycast widescreen & internal 8K: 2 Flycast: 2 Street Fighter III: 2nd Impact - Giant Attack Dreamcast: 4 Flycast: 2 MAME: 3 Street Fighter III: 3rd Strike Dreamcast: 4 Flycast: 1 MAME: 2 The King of Fighters 2000 Dreamcast: 7 NEOGEO: 5 Flycast: 3-4 MAME: 5-6 (Pre-bankruptcy SNK NEOGEO KOF games intentionally add ~3 frames of delay to attacks, prioritizing movement.) I'm running Flycast and MAME on a 2020 mid-range gaming laptop with 16 GB RAM, an Intel i7-10750H CPU @ 2.60 GHz, and an NVIDIA GeForce GTX 1660 Ti GPU. The monitor is a fairly low-latency 1080p Acer thing; console video handled by OSSC. The stick is a Hori Real Arcade Pro V 2017 Edition for PS3/4, modded w/ Sanwa buttons & lever, connecting to the DC and NEOGEO with Brook Super Converters. Raising Flycast's internal resolution from DC default 480p to 8K doesn't seem to add any delay. The Widescreen setting works really well with MvC2, SC, CvS2, and probably CvSPro, although that one has colored side bars at the far sides of the stages. I made a number of tweaks to my Windows set-up based on stuff I found Googling about input delay for Flycast. The two I'm pretty sure account for most of the lag savings are turning off VSync in Flycast's "Video" settings, and "Multi-threaded emulation" in its "Advanced" settings (apparently there's a known Flycast bug that "Threaded rendering adds a frame of input lag" https://github.com/libretro/flycast/issues/738 ). |
|
|
| | I seem to be hearing sounds clearer playing the games in Flycast than I ever did on Dreamcast--I don't think I realized Jin Saotome was screaming "Blodia!" during his shooty cockpit super in MvC2, for instance; or understood what that sorta roboty-sounding voice between rounds in CvS Pro or...somewhere...was saying...although now I've forgotten what it was, doh! |
|
|
| | Dumping my Japanese Dreamcast's BIOS with DreamShell 4.0's "BIOS Flasher" module and a DC SD Adapter V2, importing it into Windows, and finding this fixed the problem with music not playing during Guilty Gear X battles in Flycast. The BIOS is supposed to be named "dc_boot.bin" (I had to rename mine, which I think dumped as a .bios file with the DC's clock time and date as the file name) and put in Flycast's "data" directory. It's a 2.00 MB file. Once that's in there, you can run the BIOS from the thumbnail list, just like a game, and manage the saves and stuff that way if you really want to. DC BIOS downloads/instructions also seem to involve a 128 KB "dc_flash.bin" file. I think this is the console's Flash memory or something? But I can't find a way to dump such a thing with DreamShell. Flycast creates a 128 KB "dc_nvmem.bin" file in its data directory, and I wonder if this is its stand-in; it seems to get updated when I exit the BIOS--writing the time and date? Anyway I haven't found any problems so far that seem due to not having a dc_flash.bin, so perhaps that isn't actually needed for anything in Flycast. |
|
|
| | The Wiki makes no mention of a dc_flash.bin file, so yeah I think it isn't used by Flycast. https://github.com/TheArcadeStriker/flycast-wiki/wiki/Getting-started-with-Flycast The Wiki also says "A Dreamcast BIOS file is optional," which implies that not having it wouldn't limit game functionality--but the GGX music doesn't play in fights without it. Dunno if that's a bug or a documentation issue. I posted it on their GitHub: https://github.com/flyinghead/flycast/issues/1124 |
|
|
| | Forcing Flycast to 59.94 fps with RivaTuner Statistics Server (see entry 1630) definitely helps KOF 2000's (see entry 139) shadow flicker, for instance--the character shadows are much less glitchy when recorded at 59.94:
|
|
|
| | Flycast can read ROMs compressed by CHDMAN (see entry 1742); it can't read zipped ROMs, so this is a handy way to save some HD space; CHDMAN also converts each whole folder of files for a DC ROM into a single .chd (it also leaves individual .chd versions of the separate .gdi and .iso files from the folder, but those aren't needed). |
|
|
| | Flycast has native DualSense support--although the button mapping labels still use the Xbox naming convention rather than the PS naming convention--but can't set buttons as toggles, and doesn't read input from my DualSense when launched from Steam--where I would otherwise use Steam Input to set buttons as toggles, as I do with PCSX2--so for Sega Rally 2 I'm using JoyToKey to set my desired button, [] ("Button 1" on JoyToKey), to trigger keyboard key G (standing for "Gas" : P) as a Toggle, and in Flycast mapping Button A to G for the Keyboard, and Unmapping that button (button A) for the DualSense, in-game have set and saved (SR2 auto-loads at start) Player 1 as Type C, which sets Accel to that button--and in Flycast DualSense mappings I swapped the other face buttons, so "Side Brake" is on O and Brake is on X--all of which in combination lets me drive without having to hold Accelerate, as long as I remember to toggle it off when I need to drift and then back on when I need to go back into accelerating. Whew! : PP |
|
|
| | Flycast uses the "UID" connected with a game title in thegamesdb.net to find which cover art to pull down for a game; I found for Fighting Vipers 2 (J) it was pulling down the Fighting Force 2 cover art--the Flycast dev told me https://github.com/flyinghead/flycast/issues/1467#issuecomment-2020429014 this was because FV2's UID wasn't filled out in its listing there https://thegamesdb.net/game.php?id=123622 --they filled it in, which fixed the issue. There doesn't seem to be a way to force Flycast to re-download a cover art, short of deleting the data/boxart directory--or probably it's specifically the flycast-gamedb.json text file in there, which stores the game info including UID, and the connected cover art jpg filename, which varies each time it's downloaded! Deleting the whole folder though does clear out previously downloaded jpgs that would end up going unused. The identifier the db uses as "UID" for DC games is the two chunks of an ID printed around the inside of the data side of the game's GD-ROM (for FV2 there for instance the disc underside reads "HDR-0133-0561 2M1 C OZ," and the UID thegamesdb.net needed was "HDR-0133"; I've registered as a user on thegamesdb.net now and can in theory add or edit UIDs in case I run across this sort of issue again. The first two chunks of that disc ID / UID are also printed a) on the game's disc case back cover, at the left side of a small info box--on FV2's case, situated at the upper right corner on the case back--that also contains the different number printed in the SEGA info box on the GD-ROM disc label, and the region code ("NTSC-J" for instance), and b) at the bottom of the game disc case cover's spine c) and obi strip. |
|
|
| | The dev said the ID printed on the case can sometimes be incorrect (maybe the one on the bottom of the disc would be more reliable?); they said the ID Flycast is actually using for the game is printed to Flycast's log when launching the game; like, for a launch of FV2, flycast.log shows: 44:18:174 emulator.cpp:54 N[BOOT]: Game ID is [HDR-0133] |
|
|
| | With the Vulkan renderer at least, OBS's Desktop Capture does NOT capture the video when in fullscreen mode. |
|
|
| | ^ Which I had already mostly noted and then forgotten. ; D |
|
|
| | You can Alt+Enter to switch to fullscreen while on the game selection window, which is what comes up when you run the emulator. There is an Exit function you can map to a control, unmapped by default. I bound it to Esc. The emulator remembers whether you're fullscreen or windowed when you exit, and matches that the next time you start it. |
|
|
| | I sure fooled myself I guess into thinking that Flycast's Fast-Forward toggle did anything when I was trying to skip past the intros in Fire Pro Wrestling D...but it definitely does nothing in Ms. Pac-Man Maze Madness and CvSPro, other than showing two pointy brackets in the lower left corner and muting the sound--UNLESS I turn frame-skip on; then with frame-skip set to 2 for instance, it triples or something the speed of the game; only problem is, when toggled off, the game runs at 20 fps. : PPP |
|
|
| | |