Welcome!
Final Burn Neo => FBN Development => Topic started by: Mucci on July 12, 2020, 08:13:28 AM
-
(https://i.imgur.com/n9xWrKg.png)
I have created with the help from JacKc an easy to use compile script for FB Neo.
Script, readme and needed stuff can be found here: https://mega.nz/folder/OY0zTDxS#AVybq4bmBdhjw_ewIQ25Pw
If you find bugs, having input for improvement feel free to post it here.
For devs: if you have already a working Mingw environment -> please comment out line 21 in the script (temporary added path environment)
Please do not post the download link outside -> link it to this topic here
-
Thats pretty cool.
The makefile makefile.mamemingw should work with a default install of the 32bit (and maybe the 64bit) version of http://www.winlibs.com/ So if you wanted to use an up to date compilier without needing the whole of mingw installed.
-
Thanks Kev, "my" compile environment was given by JacKC as I was "not able" to build it up myself ;-) My plan was to use the MAME compile environment msys2 with everything inside (also git.exe that I must install it now) and the ability to update the tool with the script. I will check your website, maybe it is better to have an up-to-date GCC. Are you using it? Sometime newer builds break the compile process .....
-
Yeah, I have been using winlibs but primarily I use visual studio. I have several installs of gcc environments as well mostly for helping me fix appveyor but also for building the sdl2 version of FBNeo on windows. It works well with gcc10 though.
-
a small change in the script -> new fbneo.chm will be added to the output folder :-)
-
please, can you tell me how to turn the beeping sound off in the script ? thank you.
-
Hmmm I can only hear a "beep" when I choose a not existing option in the menu. What Windows-version are you using? (We have only tested it on Windows 10 x64)
I think only "pause" or "choice" commands in my script could generate a "beep". I have not found for both commands an option for disabling "beep"
btw the annoying "beep" is not a problem from my script itself, it is a windows default behavior:
https://www.thewindowsclub.com/disable-system-beep-windows-7-8
-
I am using win10 64 . it is when you press U for update. After it updated and press any key to go back to menu.
-
sorry cant help you in that case. I have also played around and some of those "tip" has not worked for me. As it is a system-sound I can not disable it in my script....
You can disable it for a current cmd-line -> set it to mute and don't close this cmd-line windows anymore ;-)
(https://www.mameguide.info/beep.jpg)
And for the "go back to the menu" -> read the docu -> change line 24 "set batchpause=on" to "set batchpause=off" -> yeah 1 beep less :-)
-
Thank you . I turn off speaker when compile.
-
Keep in mind that when V1.0.0.0 is released I have to check my compile script if it still work correct, regarding the "numbers"
-
Script runs ok:
Version : 1.0.0.0
Build : 253e21869d546406eb1f51680d87e262c78c570b
Revision : 9277
-
I will post soon a new script for compiling windows exe for official builds. It will download the required source direct from github, based on the tags and compiles it. So you can create your own official builds for 1.0.0.0 or 1.0.0.0.2 (of course more to follow ;-))
In the meantime I post a screenshot of my compile environment. I have also created scripts for generate dat-files, full automated, including copy it to my ROMManager (sorry those are private and too complicate to handle) ;-)
-
I have released my script for compiling official releases. At the moment is 1.0.0.0 and 1.0.0.2 available, but it grows in the future ;-) Be sure that if you want to use it you have installed the compile environment -> see my entry post. Download link is also posted there.
-
Guys, is it possible to build the Fightcade version of FBNeo? (https://github.com/JordiRos/fightcade-fbneo)
I tried several ways but the same error happens. I have experience with other languages, but no C++. I'm feeling this is so trivial for you guys but I'm having a hard time.
(https://i.imgur.com/BofTY0K.png)
The fba_kaillera.cpp is the same file on both official and Fightcade versions, exactly the same. I can build the official FBNeo, but not this one. Could you guys give me some advice?
Thanks!
-
Fightcade isnt supported here....
-
Fightcade isnt supported here....
I see, sorry about that... :redface:
But if you are more experienced and can help me anyway, it would be much appreciated. But thanks noneless.
-
I see, sorry about that... :redface:
But if you are more experienced and can help me anyway, it would be much appreciated. But thanks noneless.
Don't use FightCade, they are illegally using our work, thanks.
-
Keep in mind that my scripts are only for official FB Neo, and for nothing else.
-
Keep in mind that my scripts are only for official FB Neo, and for nothing else.
Hi, Mucci
I see 1.0.0.3 in the forum, but there is still 1.0.0.2 in the github tag.
Is 1.0.0.3 official?
-
the release version (even numbers) are usually old as they're released once a year.
latest development version (odd numbers.. .3) is up-to-date
use the 64bit versions at your own risk, there's a reason we don't provide 64bit binaries - they're buggy...
Maybe some day I'll upgrade my dev tools and try to fix that, but its not something I look forward to doing..
best regards,
- dink
-
Hello,
Is it possible to update gcc for the script.
Thank you
-
why? Does you have a problem with the script?
-
Hello, The script works very well, but I was wondering since the script uses an old version of gcc (4.9.1) if this had an impact on performance.
Thanks
-
IMO to get the best performance, you'll want gcc 6 or higher - especially with Cave CV-1000
If you don't care about Cave CV-1000 games, 4.91 is fine!
best regards,
- dink
-
Thanks Dink
So I will try to update gcc for the script.
Thank you
-
I use the compiler with Strawberry Perl to make 64bit exe's on my pc:
https://strawberryperl.com/
it's gcc 13.1.0!
I set it to use Strawberry perls path first, then the mingw second, because it still needs some support files from the mingw installation to compile. This way it overrides the mingw compiler with 13.1.0.
best regards,
- dink
-
Thanks Dink for this solution.
-
Hello,
I'm trying to compile fbnei using this script and I'm getting an error at the end.
Any idea?
Thank you.
Pitou!
-
Just found it. Some old Env Var were still lying in my system.
Sorry and thanks!
Pitou!
-
Thank you so much! After many years, I once again compiled FB in an extremely simple way. :cool:
-
Don't use FightCade, they are illegally using our work, thanks.
How are they using it illegally? Can you hire a lawyer to shut it down?
-
How are they using it illegally? Can you hire a lawyer to shut it down?
A fork must respect the license of the original project. Our license forbid redistribution within a commercial activity (this was inherited from the mame non-commercial code we use), which is exactly what fightcade is : a free2play with a subscription fee to unlock features. Strictly speaking, they are also receiving donations for their work of FBNeo, which is breaking another term of our license.
Sadly it's unrealistic to hire a lawyer and shut down the project.
-
OK, thanks for explaining.
I guess it is kind of a grey area since they are *technically* charging for the online service and not the actual emulator, but I see what you mean about seeking donations, that is pretty obviously in the red.
Basically, if they didn't accept donations for their online services they would be in the clear?
-
Hmmm nothing grey about that, by charging their users to unlock features, they are a commercial activity, just like any other software whose business model is what they call a "free2play". Our license clearly forbid redistribution in commercial activities (https://github.com/finalburnneo/FBNeo/blob/master/src/license.txt#L104-L108).
If there was no paywall to unlock features and they were just accepting donations, it'd be a grey area, since they'd stop being a commercial activity by definition. Some people say you are a commercial activity just by receiving donations, i personally disagree with that, but i can agree that it's a grey area.
They'd still need to address the fact that the people receiving donations are the same people modifying our source code for their needs, which is clearly breaking this other term (https://github.com/finalburnneo/FBNeo/blob/master/src/license.txt#L7).
-
I see what you mean, and I think we are on the same page.
Personally it ticks me off that they make the interface for Fightcade so awful on purpose and want a subscription to make it even slightly user friendly.
Anyway, thanks for explaining all of this to me, I appreciate it. :)
-
Personally it ticks me off that they make the interface for Fightcade so awful on purpose and want a subscription to make it even slightly user friendly.
Well, they clearly seek to gain monetary profit, which is breaking another term of our license. Just imagine : they have 9000 members on their patreon, each paying from 2$ to 100$ per month, while their server cost is probably lower than 200$ (rollback netplay is serverless, they only need some storage for their homepage and replays).
The crazy thing is that i encounter a lot of FBNeo users on discord who seem to think they are a necessary evil because there would be no netplay without them, while there are actually several good alternatives, with either non-rollback netplay (kaillera, parsec) or rollback netplay (retroarch).
-
I think their big advantage as far as attracting users is that they have the friendliest/most convenient way to get started. You just download it, run the program, and you are in a lobby where you can find matches. Just getting a copy of retroarch isn't going to get you all the way there.
Somewhat related, since the license says that nobody can accept donations, I assume that includes the FBNeo project as well?
-
Indeed, the FBNeo team can't accept donations either.
-
Since my "old" environment failed to compile ("makefile.mamemingw:574: recipe for target 'vid_directx9.o' failed, make.exe[1]: *** [vid_directx9.o] Error 1, makefile:106: recipe for target 'mamemingw' failed") I have tried to use the package from https://www.winlibs.com. Those are updated, maybe worth a try ;-)
At the moment I'm still testing it on Win11 with x64. UCRT runtime library does fail but MSVCRT seems ok.
I have no idea how many are using my script but if someone is interested to test it please contact me on discord or send me a PM here.
And if you don't want to compile it yourself -> download the nightly build (also perfect ;-) )
-
Hi Mucci,
To help me figure out and fix hte problem, could you get me the full log from make?
from the command prompt (cmd.exe), run make like this:
make mamemingw > makelog.txt 2>&1
If your make command is different, just write it, but add this to the end:
> makelog.txt 2>&1
And after some time, it'll return to the command prompt and have created makelog.txt, please attach this log file and I'll try to figure out what is wrong :)
best regards,
- dink
-
Mucci,
TIP: adding this parameter to the make.exe commandline in your script will speed up the build by many times.
-j8
Also, I removed depend by default in makefile.mingw. Deprecated, because one can rebuild from clean quicker than
make will make & check the depend files. This also speeds the build up considerably.
Also.. fixed a string problem with newer compilers :)
edit:NOTE: ideally, you'd want to query the number of cores the processor has and pass this to make with -j. Maybe this will work? I didn't try it:
make -j%NUMBER_OF_PROCESSORS%
This way, if a cpu has more than 8 cores, it won't be limited to only using 8 cores if you only use -j8
best regards,
- dink
-
Used it in my MAME compile-Script, can't remember why I have removed it in the FBNEO script ;-)
set /a THREADS=%NUMBER_OF_PROCESSORS% + 1
set Compilecpu=j%THREADS%
"make.exe -%Compilecpu% " (not the complete command ;-))
ok added it.
Compile today was also fine, will do some more testing and update the docu. In a couple of days I will upload it as V2 (V1 and V2 scripts are not 100% identical)
@dink: Sure I can create this compile error log. But I don't want to spend too much time with it as the new compile environment does work. Old package was created/received from JacKc 4 years ago. Maybe it is better to have an updated one.
-
Not much information there ....but yeah as I have already mentioned, don't waste too much time. Maybe something is missing or outdated in my first package....
-
@dink In my experience, the -jX parameter randomly fails on FBNeo, i think it has to do with make sometimes starting to build cpp/c files before header generation finished.
I actually had to remove that parameter from the buildbot some months ago because it was a regular cause of failure : https://github.com/finalburnneo/FBNeo/commit/fa2f4c953caa4939faf82cab2734ef7834e632c5
-
Not much information there ....but yeah as I have already mentioned, don't waste too much time. Maybe something is missing or outdated in my first package....
Thanks for the log, try now
-
@dink: does work again on my old environment, thanks a lot
@barbudreadmon: thanks for the hint, will remove it from my script
all green :-)
-
ahaha no wonder it takes so long for the build to complete, I've been going nuts lately waiting for github ci...
I'd rather have it fail once in a while than wait 25 minutes for a build to complete before I can leave after a big merge :)
Thirdly: I'd even much rather try to serialize the parts that are failing so that they compile in the correct order.
For now, I'll add back the -j and when/if it starts failing, I'll do some digging to get things fixed proper.
best regards,
- dink
-
With git ci:
Now we have 11 minute builds instead of 26 minute builds, reliably (I hope)!
Using the .WAIT directive, to make sure the directories are created before it starts building appears to have worked.
Caveat:
.WAIT is only supported in gnu make 4.4 or newer. If you have trouble building this with the mingw (aka gcc510+) target, let me know and I'll make a new target for the newer gnu make.
best regards,
- dink
-
@dink Haha, sorry about that, i should have told you, i thought it was better to favor reliability over speed.
The random failure was this one : https://github.com/finalburnneo/FBNeo/actions/runs/11624670704/job/32373621158
Let's hope that new directive will fix that problem.
-
no problem :)
Fixed a little issue with older make, sorry to anyone that had trouble building last night and had trouble.
best regards,
- dink