You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: docs/library/fbneo.md
+78-17
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,21 @@
1
1
# FinalBurn Neo
2
2
3
+
## Note about this document
4
+
5
+
It mostly assumes you are using RetroArch as your libretro frontend, some specific instructions might differ if you are using another frontend.
6
+
7
+
It also assumes you are already knowledgeable about arcade emulation and its quirks. If you aren't, you should be reading [getting started with arcade emulation](https://docs.libretro.com/guides/arcade-getting-started/) first.
8
+
3
9
## Background
4
10
5
-
FinalBurn Neo (also referred to as FBNeo or FBN) is a multi-system emulator (Arcade, consoles and computers) under active development. Unlike MAME it's more focused on playability and advanced features than preservation.
11
+
FinalBurn Neo (also referred to as FBNeo or FBN) is a multi-system emulator (Arcade, consoles and computers) under active development.
6
12
It is the follow-up of the FinalBurn and FinalBurn Alpha emulators.
7
13
The libretro core provides wide compatibility with platforms and features supported by libretro.
8
14
9
15
## Difference from MAME
10
16
11
17
FBNeo strives for accuracy, just like MAME. There are some arcade boards where one or the other will be more accurate, but for the most part they should be equally accurate.
12
-
The main difference with MAME is that FBNeo doesn't mind including "quality of life" hacks, while MAME is about absolute preservation. "Quality of life" hacks include things like :
18
+
The main difference with MAME is that FBNeo doesn't mind including "quality of life" hacks, while MAME is mostly focused on preservation and documentation. "Quality of life" hacks include things like :
13
19
14
20
* improving original game's sound (some games like "Burger Time" have noise which was clearly unintended by their developpers, we are removing it)
15
21
* implementing alternative colors for games where the colors don't look right (sometimes there are controversies about which colors are right for an arcade board, like "Tropical Angel", we implement alternative colors as dipswitches)
@@ -29,7 +35,7 @@ There are controversies about whether libretro's patreon and retroarch's GPL lic
29
35
***"Redistributions may not be sold, nor may they be used in a commercial product or activity."** : By definition, a commercial activity is an activity involving the sale of goods or services. The libretro project does none of that, and it is unclear whether a patreon should be treated as a commercial activity or not when no goods or services are provided in exchange of the donations.
30
36
***"You may not ask for donations to support your work on any project that uses the FB Neo source code."** : This FBNeo port is using libretro code, not the other way around. This port is directly authored/maintained/supported by members of the FBNeo team, and none of them is receiving donations. Interestingly, if receiving donations was de facto a commercial activity, this term shouldn't be required.
31
37
**If* the libretro project was a commercial activity, it would still be unclear how it does affect this port. Our win32 standalone builds use the directx api, which belongs to a commercial company. Using the libretro api, which would belong to a commercial activity, wouldn't be any different. Furthermore, in all likeliness, there would still be alternative libretro frontends that don't belong to the libretro project and are not commercial.
32
-
* Actually, alternative commercial libretro frontends already exist, and we consider we are not concerned as long as this port is not distributed with/through them and they don't use its availability as some mean of advertisement. In this scenario, only a manual installation of the core by the user will be considered legal and supported.
38
+
* Actually, alternative commercial libretro frontends already exist, and we consider we are not concerned as long as they neither redistribute FBNeo nor use it as some mean of advertisement. In this scenario, only a manual installation of the core by the user will be considered legal and supported.
33
39
* While GPL code can't be mixed with non-commercial code, this is a non-issue since this port doesn't contain any GPL-licensed code.
34
40
* Under european law, where the libretro buildbots are located, linking GPL and non-commercial softwares doesn't produce a derivative work, and doesn't extend the GPL license to the non-commercial work (source [here](https://joinup.ec.europa.eu/collection/eupl/licence-compatibility-permissivity-reciprocity-and-interoperability)). It is unclear whether the same applies in non-EU countries or not.
35
41
@@ -41,22 +47,28 @@ zip, 7z
41
47
42
48
From the root of the repository, run
43
49
```
44
-
make -j5 -C src/burner/libretro generate-files
45
50
make -j5 -C src/burner/libretro
46
51
```
47
-
Note : `-j5` is to optimize build time on cpus with 4 cores, you can rise or reduce that value to match your own, however a value too high will increase ram usage and might even cause your system to become instable.
52
+
Note : `-j5` is to optimize build time on cpus with 4 cores (X+1 cores), you can rise or reduce that value to match your own, however a value too high will increase ram usage and might even cause your system to become unstable.
48
53
49
-
Note : if you need additional parameters, they must be added to both commands.
54
+
Note : Here is a non-exhaustive list of additional parameters you might want to append to the make command line :
55
+
56
+
***SUBSET=all** : Build a core that supports everything. This is the default SUBSET so you don't need to append it.
57
+
***SUBSET=neogeo** : Build a core that only supports neogeo games.
58
+
***SUBSET=cps12** : Build a core that only supports CPS-1 & CPS-2 games.
59
+
***generate-files** : Generate header/gamelist files and stop there.
60
+
***clean** : Remove any previously built object.
61
+
***REGEN_HEADERS=1** : This will run **generate-files** and **clean** consecutively before building the core, which is usually required when you made a change to the list of drivers you want to build, either from modifying the project's code or switching between SUBSETs. Note that make version 4.4 may be required for this to behave properly.
50
62
51
63
## Building romsets for FBNeo
52
64
53
-
Arcade emulation won't work properly without the romsets matching the emulator. FBNeo being an emulator under active development, a given romset might change from time to time to stay in sync with the best dump available for that game.**All of this is to offer you the best gaming experience possible, because older bad dumps can prevent the game from working as it should**.
65
+
Arcade emulation won't work properly without the romsets matching the emulator. FBNeo being an emulator under active development, a given romset might change from time to time to stay in sync with the best dump available for that game.
54
66
55
67
Don't expect things to work properly if you didn't build valid romsets, and don't report issues because your romsets are invalid.
56
68
57
69
### Step 1: Obtaining an XML DAT
58
70
59
-
You can download the dat files for the latest version of the core from the [dats](https://github.com/libretro/FBNeo/tree/master/dats/) directory. Note that some devices (Nintendo 3DS) are running a "light" build with fewer supported games due to memory limitation, the dat files for that build are available from the [light](https://github.com/libretro/FBNeo/tree/master/dats/light/) subdirectory.
71
+
You can download the dat files for the latest version of the core from the [dats](https://github.com/libretro/FBNeo/tree/master/dats/) directory.
60
72
61
73
### Step 2: Gathering the ingredients
62
74
@@ -88,10 +100,13 @@ Refer to a [clrmamepro tutorial](https://docs.libretro.com/guides/arcade-getting
88
100
| Camera | ✕ |
89
101
| Location | ✕ |
90
102
| Subsystem | ✔ |
103
+
| IPS Patch | ✔ |
104
+
| RomData | ✔ |
105
+
| Multi-language | ✔ |
91
106
92
107
## Mapping
93
108
94
-
We don't have a convenient tool like the MAME OSD, instead we use the libretro api to announce buttons and let the frontend customize mapping, this is done through `Quick Menu > Controls`.
109
+
We don't have a tool like the MAME OSD, instead we use the libretro api to announce buttons and let the frontend customize mapping, this is done through `Quick Menu > Controls`.
95
110
96
111
For those who don't want to fully customize their mapping, there are 2 convenient presets you can apply by changing the "device type" for a player in this menu :
97
112
@@ -104,6 +119,12 @@ The following "device type" also exist, but they won't be compatible with every
104
119
***Mouse (full)** : same as above, but the buttons will be on the mouse
105
120
***Pointer** : it will use "pointer" device (can be a mouse/trackball) to determine coordinates on screen, buttons will stay on retropad
106
121
***Lightgun** : it will use lightgun to determine coordinates on screen, buttons will be on the lightgun too.
122
+
***Analog Arcade Gun** : it will use the analog stick for gun games but in a different way than "Classic" and "Modern", it is particularily useful if you have a "fixed arcade gun" (arcade gun mounted on an analog control).
123
+
124
+
The following device types are mostly WIP, they haven't been thoroughly tested and might contain major bugs (please report them) :
125
+
126
+
***6-Panel** : assuming you are using a 6-button arcade panel and followed the "YXL as top row and BAR as bottom row" mapping recommendation, it will map the top row then the bottom row as a general rule (with some exceptions), note that some users might be more comfortable with Classic/Modern's BAYX's assignment for 4-buttons systems like neogeo.
127
+
***Touchscreen** : a variant of the "Pointer" device type meant for mobile devices, touchscreen "tap events" are used for gameplay, "Start" and "Coin" are still assigned to your retropad overlay.
107
128
108
129
## Emulating consoles and computers
109
130
@@ -119,6 +140,7 @@ You can use specific folder's name for detection, it's the easiest and recommend
119
140
* Nec TurboGrafx-16 : `tg16`
120
141
* Nintendo Entertainment System : `nes`
121
142
* Nintendo Family Disk System : `fds`
143
+
* Super Nintendo Entertainment System : `snes`
122
144
* Sega GameGear : `gamegear`
123
145
* Sega Master System : `sms` | `mastersystem`
124
146
* Sega Megadrive : `megadriv` | `megadrive` | `genesis`
@@ -137,6 +159,7 @@ You can also emulate consoles by prefixing the name of the roms with `XXX_` and
137
159
* Nec TurboGrafx-16 : `tg`
138
160
* Nintendo Entertainment System : `nes`
139
161
* Nintendo Family Disk System : `fds`
162
+
* Super Nintendo Entertainment System : `snes`
140
163
* Sega GameGear : `gg`
141
164
* Sega Master System : `sms`
142
165
* Sega Megadrive : `md`
@@ -177,6 +200,13 @@ The following bioses are required for some of the emulated systems :
177
200
* spec128.zip (ZX Spectrum 128 BIOS)
178
201
* spec1282a.zip (ZX Spectrum 128 +2a BIOS)
179
202
* channelf.zip (Fairchild Channel F BIOS)
203
+
* dsp1.zip (SNES DSP-1)
204
+
* dsp1b.zip (SNES DSP-1B)
205
+
* dsp2.zip (SNES DSP-2)
206
+
* dsp3.zip (SNES DSP-3)
207
+
* dsp4.zip (SNES DSP-4)
208
+
* st010.zip (SNES Seta ST010)
209
+
* st011.zip (SNES Seta ST011)
180
210
181
211
## Samples
182
212
@@ -242,7 +272,7 @@ This core widely supports the RetroArch input latency reduction features, with *
242
272
243
273
Proper support for **runahead second instance** is not guaranteed because it doesn't exist in standalone FBNeo unlike the other methods.
244
274
245
-
Note : There seems to be possible conflicts when rewind is active simultanneously, see https://github.com/libretro/RetroArch/issues/16374.
275
+
Note : There seems to be possible conflicts when rewind is active simultaneously, see https://github.com/libretro/RetroArch/issues/16374.
246
276
247
277
## RetroAchievements
248
278
@@ -258,7 +288,14 @@ This core supports the RetroArch cheat feature with the `.cht` files. However it
258
288
259
289
* Download the pack of cheats from [here](https://github.com/finalburnneo/FBNeo-cheats/archive/master.zip)
260
290
* Uncompress **all of them** into the `SYSTEM_DIRECTORY/fbneo/cheats/` folder (which is **NOT** the same folder as the RetroArch feature with the `.cht` files)
261
-
* Cheats will become available through core options (`Quick Menu > Options`, **NOT**`Quick Menu > Cheats`) afterward.
291
+
* Cheats will become available through core options (`Quick Menu > Core Options`, **NOT**`Quick Menu > Cheats`) afterward.
292
+
293
+
## Multi-language
294
+
295
+
This core supports multi-language feature.
296
+
297
+
* Multi-language is based on the front-end User UI language switching
298
+
* Simplified Chinese and Traditional Chinese have been added.
262
299
263
300
## Frequently asked questions
264
301
@@ -268,21 +305,38 @@ As far as we are concerned, you are supposed to dump your own games, so we can't
268
305
269
306
### Why am i getting a white screen ?
270
307
271
-
Refer to [getting started with arcade emulation](https://docs.libretro.com/guides/arcade-getting-started/#step-3-use-the-correct-version-romsets-for-that-emulator) to understand how romsets work.
308
+
The white screen tells you if the romset is supported at all and which files are wrong or missing.
309
+
Especially, if present, the line "Verify the following romsets : <romset> <parent> <bios>" tells you the list of romset/parent/bios needed by the romset you are trying to run.
272
310
273
-
The white screen tells you if the romset is supported at all and which files are wrong or missing.
274
-
Exceptionally there might be a false positive due to your file being unreadable for some reason.
311
+
Exceptionally there might be a false positive due to your file being unreadable for some reason (file corruption during transfer, file permission, damaged disk drive, ...).
312
+
This is a rabbit hole and something you should only concern yourself if you already used clrmamepro to verify your romsets.
275
313
276
314
### How can i run that romhack i found ?
277
315
278
316
A lot of romhacks are supported natively, so your romhack might already be supported under a specific romset name.
279
317
280
-
For the unsupported romhacks, you can put the patched version of the romset into `SYSTEM_DIRECTORY/fbneo/patched` (NB: you can strip it of any file that don't differ from non-patched romset if you want), that method will only work if the sizes and names matches with the original romset.
281
-
**The romset you must launch is still the original non-patched romset (its content will be overrided at runtime by the content of the patched one)**, you can disable that behavior by toggling off the `Allow patched romsets` core option.
318
+
For the unsupported romhacks, there are 3 methods, but those romhacks are not allowed and must be disabled by toggling off the `Allow patched romsets` core option if you intend to use RetroAchievements :
319
+
320
+
#### Using the "patched" folder
321
+
322
+
* Put the patched version of the romset into `SYSTEM_DIRECTORY/fbneo/patched`, this folder has special privileges allowing it to ignore crcs. Sizes and names still need to match the original romset though.
323
+
* Optional : you could strip the patched version from any file that don't differ from the original romset.
324
+
* Note : **The romset you must launch is still the original non-patched romset (its content will be overriden at runtime by the content of the patched one)**.
325
+
326
+
#### Using IPS Patches
327
+
328
+
* Put all IPS patch files (including: driver name directory/**.dat|**.ips) into the `SYSTEM_DIRECTORY/fbneo/ips/` folder.
329
+
* IPS Patch will become available through core options (`Quick Menu > Core Options`) afterward. To apply them, you need to launch the game, enable them in core options, then use RetroArch's "restart" action.
330
+
* Note : To avoid competing with loaded games for startup privileges, IPS Patches is initially disabled by default.
331
+
332
+
#### Using RomData
333
+
334
+
* Put all RomData files (including: driver name directory/**.dat) into the `SYSTEM_DIRECTORY/fbneo/romdata/` folder
335
+
* RomData will become available through core options (`Quick Menu > Core Options`) afterward. To apply them, you need to launch the game, enable them in core options, then use RetroArch's "restart" action.
282
336
283
337
### How can i run that unibios i bought from http://unibios.free.fr/ ?
284
338
285
-
Same answer as above.
339
+
Use the "patched folder" method from above.
286
340
287
341
### I think i found a glitch, how do i report it ?
288
342
@@ -381,6 +435,8 @@ The currently available neogeo combos were decided in https://github.com/libretr
381
435
382
436
Note that there was also a request to add a retroarch macro mapper in https://github.com/libretro/RetroArch/issues/8209.
383
437
438
+
There is also a PR currently opened to implement this : https://github.com/libretro/RetroArch/pull/16035.
439
+
384
440
### Why can't i enable hardcore mode in RetroAchievements ?
385
441
386
442
This feature doesn't accept achievements made with any kind of cheat, meaning unibios, cheats, and patched romsets must be disabled in core options.
@@ -389,6 +445,11 @@ This feature doesn't accept achievements made with any kind of cheat, meaning un
389
445
390
446
It is common for arcade machines to execute self-tests at boot, and in many cases they won't boot if unexpected values have been injected into their memory, which is exactly what cheats do. Disabling cheats at boot is a safety mecanism to prevent those boot issues.
391
447
448
+
### Why do the self-tests at boot fail ?
449
+
450
+
Sometimes the NVRAM/EEPROM saved on your disk gets corrupted for some reason, Konami games are especially known for getting this issue *somewhat frequently*.
451
+
NVRAM/EEPROM are saved in the `SAVEFILES_DIRECTORY/fbneo` folder, and you can get around this issue by finding the files corresponding to your game and deleting them.
452
+
392
453
### Where is SYSTEM_DIRECTORY ?
393
454
394
455
Open your `retroarch.cfg` file and look for `system_directory`, or check `Settings > Directory > System/BIOS`.
0 commit comments