The NEW Build Your Own Arcade Controls

Software Support => GroovyMAME => Topic started by: Substring on October 15, 2020, 06:45:42 pm

Title: New CRT-friendly emulator : Final Burn Neo
Post by: Substring on October 15, 2020, 06:45:42 pm
Hi everyone!

Calamity, Doozer and I are very pleased to announce a new switchres-compatible emulator : Final Burn Neo! Although it's still pretty much beta, switchres integration has been merged by the FBN team, and it works for both Windows and Linux!

What's important to us to point here, it's that this emulator uses the resolution switching code used in GroovyMAME, that has been extracted as a library to help other emulators to be CRT-friendly. FBN is the first one we share, we have some other (ongoing) emulators targetted.

A few details about this beta and FBN itself :
- in-game resolution switching is not handled. Shouldn't be a problem with arcade, but some consoles do switch modes ...
- focus on horieontal displays only for now, the code still needs to be adapted for vertical layouts
- no code explicitely handle when the monitor refresh rate is too different from the real game refresh rate, tearing can occur
- only works on your primary monitor (if you ever have a multihead setup)
- adapt the shipped switchres.ini to your needs, the configuration is almost the same as mame.ini
- FBN has its own romset ;)
- FBN MUST be started with the -fullscreen option. Best way to use it : fbneo.exe -fullscreen <romname> or fbneo.exe -fullscreen -menu for the basic GUI version

Remember this is beta, we hope you'll share your thoughts with us :)

Press START (https://drive.google.com/file/d/1I5toB4sXWdlbXxDtQE4inCo2C8Yu6YPl/view?usp=sharing) to try!
Linux users can ask me on how to get/compile the linux version.

(N.B. I'm not a windows user, couldn't test the archive, but I think everything is inside)
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: cornerstone on October 16, 2020, 11:52:23 am
Thanks for doing this!

I am getting an error when starting FBNeo:

The program can’t start because libstdc++-6.dll is missing from your computer. Try reinstalling the program to fix this problem.

My windows 7 build is pretty barebones, so I’m not sure if it’s just a normal windows thing that I’m missing.
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: Calamity on October 16, 2020, 12:17:27 pm
Some dlls are missing. Try adding these dlls next to fbneo's binary.
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: donluca on October 16, 2020, 05:42:22 pm
Whoever compiled the binary forgot to add the C++ library as well.

This is strange and should not happen honestly, what are you using to compile the windows version?

Anyway, try compiling using -static-libgcc and -static-libstdc++ options so people won't have to download and install any additional DLLs.

EDIT: meanwhile, try installing the libraries yourself:

32-bit https://aka.ms/vs/16/release/vc_redist.x86.exe
64-bit https://aka.ms/vs/16/release/vc_redist.x64.exe
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: cyb on October 16, 2020, 11:11:00 pm
as someone who hasn't used fb in years, are there any advantages to using it over MAME?
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: donluca on October 17, 2020, 08:52:56 am
as someone who hasn't used fb in years, are there any advantages to using it over MAME?

AFAIK, it is a clusterfuck of speed hacks and optimization to make games run on older/modest hardware with very low processing power requirements, at the expense of emulation accuracy.

This could be interesting, for example, for owners of those chinese Pandora's Boxes that use FBA to run games.

I have one but it runs at a fixed 320x240 60hz resolution, it would be a nice upgrade to have it switching resolutions automatically with the correct refresh rates.
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: cornerstone on October 17, 2020, 10:43:16 am
as someone who hasn't used fb in years, are there any advantages to using it over MAME?

The main reason is to take advantage of Fightcade 2, a program that runs FBNeo as the emulator base and allows for online matchmaking for a lot of games. I believe the Neo version was built specifically to run with fightcade, as opposed to the Alpha.
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: Substring on October 17, 2020, 11:21:55 am
The story between Alpha and Neo is not that nice in fact ... When Capcom decided to get its share of the retrogaming hype and release their arcade stick, they "bought" a licence of FBA to its main author, but contributors did not get a single penny in exchange of their countless nights spent working on improving FBA. And anyway, they totally disagreed with the main ahtor behaviour, so they forked to Final Burn Neo, which almosy instantly killed Final Burn Alpha.

Now why FBN ? Because it's not as demanding as MAME and can run on smaller configs.

But that Fightcade thing ... I'm afraid it doesn't work with the SDL2 port we're using for CRT switchres ... I mean : regarding netplay
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: cornerstone on October 17, 2020, 11:48:18 am
Darn
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: Calamity on October 17, 2020, 12:34:07 pm
But that Fightcade thing ... I'm afraid it doesn't work with the SDL2 port we're using for CRT switchres ... I mean : regarding netplay

No, they're using their own fbneo fork https://github.com/JordiRos/fightcade-fbneo
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: Recapnation on October 17, 2020, 03:08:49 pm
So what's exactly the point of this when there exists GM? If I recall, Final Burn is based on MAME? Less CPU demands, may it be?
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: Substring on October 17, 2020, 04:25:47 pm
Works better on smaller configs, can be interesting for SBC like a raspberry, odroid or whichever else board. Also a proof that switchres can be integrated into other emulators, and finally : reminding the community that GM is kot the only emulator, that despite what sime may think, we do work on some other projects.

I agree that adding a new arcade emulator sounds stupid compared to groovymame. But converting other emulators is challenging, and we needed to prove that the switchres code is enough robust to work elsewhere than mame :)
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: Recapnation on October 18, 2020, 03:28:11 pm
Let the community know that you're working on getting the best emulators of systems which are so poorly emulated on MAME (such as Nestopia, BSNES, Genesis Plus GX, Blast'em, or XM6 Type G) to incorporate a low latency feature and you'll get all the attention, I'd say, indeed. People in the know are eager to kick Retro Arch out as soon as possible. (Hopefully not having LX versions isn't an obstacle for that, laughs!)

Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: Substring on October 19, 2020, 02:12:21 pm
Low latency is not really what we're aiming ! Rather good resolution switching on CRT, yeah. My choice would really go to mednafen : one emulator to rule them all rather well
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: formula409 on October 19, 2020, 02:32:11 pm
FWIW, FB Neo's emulation of X-Men and X-Men 6P is better than MAME's at this point (pretty embarrassing for MAME, honestly).
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: Recapnation on October 21, 2020, 01:12:48 pm
That's interesting. What does it fix, in particular?


Substring: Mednafen seems to be a good one for PC Engine, not so sure if it is for FC/NES and others. But isn't that one covered already by the Emu-4-CRT project?
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: Substring on October 21, 2020, 06:42:09 pm
emu4crt is windows only afaik
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: Calamity on October 22, 2020, 02:54:19 am
Substring: Mednafen seems to be a good one for PC Engine, not so sure if it is for FC/NES and others. But isn't that one covered already by the Emu-4-CRT project?

Silmalik has also implemented a build of Mednafen + Switchres, though it's still experimental. Mednafen's case is a bit more complicated to handle than FB Neo.

The point of all this is to show the possibilities of the new library (still a work in process): having an easy-to-integrate api for custom video that's available to emulator authors. From the user's point of view, it will allow to handle video modes for different emulators in a consistent way, in all aspects that matter (geometry, scaling, etc.).
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: Recapnation on October 24, 2020, 06:47:49 am
That sounds splendid, indeed. Just wondered why Final Burn. Didn't even know that it fixes? some MAME bugs.
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: Substring on October 24, 2020, 11:50:34 am
Few reasons I'd say :
  - integration was really easy as FBN gets straight to the point (i.e. initializes a SDL window at the size of the real game resolution)
  - GM doesn't run well on SBCs such as raspberry pi. I know most people think these devices are not worthfor serious (retro) gaming, but still, it's worth
  - I know one dev of FBN for a few years
  - other emulators were (and still are) under the microscope, but FBN code was so easy to understand that it was worth the try
  - FBN is cross platforms, means it runs under Linux, which is easier for me to develop

All in all, it's all a matter of time and code complexity. As Calamity said, we'd really like to have mednafen working as it's a good multiple systems emulator.
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: totozero on October 25, 2020, 06:06:11 am
People in the know are eager to kick Retro Arch out as soon as possible. (Hopefully not having LX versions isn't an obstacle for that, laughs!)

Hi, don't want to start a flame war, but why would you say that ?
From my experience, for snes/md/pce/nes/ps1 retroarch is miles ahead over its competitors in terms of emulation and input lag on a crt. I couldn't be happier than this with its latest improvements.
Arcade emulation is another story, I still vastly prefer GM though.
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: Recapnation on October 26, 2020, 07:39:40 pm
Many reasons, really. It's true that its synchronization system and frame delay feature usually improves the experience when compared with the standalone emulators of TV consoles it borrows, particularly for 15-kHz usage (and that's why I find it necessary for now). But everything else about this project just stinks. The run-ahead feature is serving to either, break the games or as a cheating tool. There's a serious lack of documentation for CRT users (and their forums are a pain to use). But above all, their way to appropriate others' ideas and $ell them a$ their$ is especially annoying.

Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: Substring on October 27, 2020, 06:44:03 am
Libretro is a great idea (giving a common interface for sound, video and inputs in emulators). Those who don't like retroarch can use some alternate libretro frontends that are not bloated (but miss 15kHz) : ludo is the most advanced one (and maintained by the former Lakka lead dev), anither one (which is more of a proof of concept) is nanoarch. These are way more basic libretro frontends (but prolly not suited for 15kHz yet)
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: slizzap on December 22, 2022, 04:41:30 pm
Hey guys,

I'm about 2 years late to this party, but still hoping someone is familiar to provide some assistance. I've downloaded the linked FBNeo and DLLs to run this executable, but I can't get it to actually switch resolutions.

I'm running this on a Windows 7 x64 PC with Ultimarc ArcadeVGA. It's connected to a showcase cabinet with 34" Samsung CRT (standard resolution). This cabinet is a dedicated MAME cabinet for fighting games. I'm running GroovyMAME v0.181 and everything is dialed in and switching resolutions for all games beautifully.

With that said, I figured this would be pretty simple to plug in to my cabinet and get going, but I must be missing something here as it simply won't switch resolutions. I'm using Mortal Kombat II as my test game. The desktop is running at 640x480 (interlaced), so when the game starts it's easy to see it's still running at the desktop resolution rather than the native resolution of the game (400x256 in this case, which is also one of the built-in resolutions for the ArcadeVGA).

Here's the output from FBNeo after running the game in case it's helpful:
Code: [Select]
FBNeo v0.2.97.44
Loading config from fbneo.ini
Loading config from fbneo.ini
mapping (null)
SDLSoundInit (44100Hz) (6000FPS)
SDLSoundInit (44100Hz) (5471FPS)
Game resolution: 400x254@54.710000
bbp: 32
setting logical size w: 400 h: 300nVidImageWidth=400 nVidImageHeight=254 nVidImagePitch=1600
Malloc for video Ok 406400
p1 coin 5
p1 start 1
p1 up ARROW UP
p1 down ARROW DOWN
p1 left ARROW LEFT
p1 right ARROW RIGHT
p1 fire 1 Z
p1 fire 2 X
p1 fire 3 C
p1 fire 4 A
p1 fire 5 S
p1 fire 6 D
p2 coin Joy 0 Button 0
p2 start Joy 0 Button 0
p2 up Joy 0 Up (Y negative)
p2 down Joy 0 Down (Y positive)
p2 left Joy 0 Left (X negative)
p2 right Joy 0 Right (X positive)
p2 fire 1 Joy 0 Button 0
p2 fire 2 Joy 0 Button 0
p2 fire 3 Joy 0 Button 0
p2 fire 4 Joy 0 Button 0
p2 fire 5 Joy 0 Button 0
p2 fire 6 Joy 0 Button 0
p3 coin code 0x00
p4 coin code 0x00
reset F3
service 9
diag F2
tilt T
p1 fire 7 Q
p1 fire 8 W
dip FBK_YEN
dip code 0xFC
loading state 0 config/games/mk2.fs
saving state 0 config/games/mk2.fs
Doing exit cleanup

Here's my switchres.ini file. All of the options that matched in the MAME.ini from GroovyMAME were copied over to make this, but it's worth mentioning I'm getting the exact same results with the default switchres.ini (no modifications from myself):
Code: [Select]
#
# Switchres config
#

monitor           arcade_15
crt_range0                auto
crt_range1                auto
crt_range2                auto
crt_range3                auto
crt_range4                auto
crt_range5                auto
crt_range6                auto
crt_range7                auto
crt_range8                auto
crt_range9                auto
lcd_range                 auto


#
# Display config
#

display                   auto
api                       auto
lock_unsupported_modes    1
lock_system_modes         0
refresh_dont_care         1
keep_changes              0


#
# Modeline generation config
#
modeline_generation       1
interlace                 1
doublescan                1
dotclock_min              0
sync_refresh_tolerance    2.0
super_width               2560
aspect                    4:3
v_shift_correct           0
pixel_precision           1


#
# Custom video backend config
#
screen_compositing        0
screen_reordering         0
allow_hardware_refresh    0
custom_timing             auto

Lastly, I thought this might be related to the fact that I have an LCD screen connected by DVI as a marquee monitor, which is seen as the primary monitor in the display settings. I noticed the info above that this only works with the primary monitor and multidisplay setups do not work. I did go ahead and physically disconnected the LCD screen to force the CRT to become the primary and rebooted my machine, but that had did not affect my results in any way.

Any suggestions? I haven't even installed Fightcade yet, and I won't bother if I can't get this running properly on its own. Also, is there a new build of this executable? Will there be a new build that supports multiple monitors? My GroovyMAME is configured to use the following option while my LCD screen is connected for the marquee, so I'm assuming something similar could likely be implemented here:
#
# OSD PER-WINDOW VIDEO OPTIONS
#
screen                    \\.\DISPLAY2

Thanks.
Title: Re: New CRT-friendly emulator : Final Burn Neo
Post by: b4nd1t0 on January 05, 2023, 03:43:40 am
Hi Substring, i would like to try compiling an updated version of fbneo, where can i find instructions and what changes need to be made to include switchres? Obviously also for linux, thanks as always.