Giter Site home page Giter Site logo

finalburnneo / fbneo Goto Github PK

View Code? Open in Web Editor NEW
854.0 33.0 347.0 88.77 MB

FinalBurn Neo - We are Team FBNeo.

Home Page: http://neo-source.com

License: Other

HTML 0.69% Makefile 0.01% QMake 0.12% C 13.87% C++ 81.88% Assembly 2.91% Objective-C 0.20% Perl 0.05% CSS 0.02% Batchfile 0.01% HLSL 0.03% Objective-C++ 0.10% Pawn 0.12%
arcade emulator neogeo taito kaneko sega mastersystem megadrive colecovision msx1

fbneo's Introduction

FinalBurn Neo

Official Forum: https://neo-source.com

Discord: https://discord.gg/8EGVd9v

This is the official repository of FinalBurn Neo, an Emulator for Arcade Games & Select Consoles. It is based on the emulators FinalBurn and old versions of MAME

Use of this program and its source code is subject to the license conditions provided in the license.txt file in the src folder.

Work in Progress builds

You can download the latest builds by clicking on the badge below. Please note that the downloads might not be available immediately after a new commit. As this build is of the last commit occasionally you might run into incomplete code, crashes or other issues that official releases will not have.

nightly-release

Ports

Raspberry Pi build instructions.

macOS build instructions and releases.

LibRetro port with builds availble via RetroArch for a lot of cool platforms.

For SDL1.2 builds just type make sdl (requires SDL1.2 and GCC, make, perl and nasm) instructions

For SDL2 builds just type make sdl2 (requires SDL2, SDL2_image, gcc, make, perl and nasm) instructions

Reporting Issues

Please raise an issue on the project GitHub or report on the forums at Neosource

What about FB Alpha?

Many of the developers of this project also worked on FB Alpha. Due to a controversy, we no longer do, and recommend that everyone use this emulator instead.

Contributing

We welcome pull requests and other submissions from anyone. We maintain a list of known bugs and features that would be nice to add on the issue tracker, some of which would be a good starting point for new contributors.

One of the focuses of FBNeo is ensuring that the codebase is compilable on older systems. This is for many reasons, not least because older hardware still has a use outside of landfill or being stored in a recycling center, but also it can be a lot of fun porting and running FBNeo to other platforms. Currently, this means we will always aim for C++03 compliance as a minimum. Any pull requests should keep this in mind!

Notes on Contributions

In the root of the source tree there is an .editorconfig that mandates:

  • tabs for indentation
  • tabs use 4 columns

Please see the following function for some ideas on how naming, brackets and braces should be

void FunctionName(UINT8 var1, UINT16 var2)
{
	UINT64 result;
	if (var1 * var2 >= 10) {
		result = var1 * var2;
	} else {
		result = var1;
	}
}

Source tree structure

The source for FBNeo is layed out in a similar way to how things were in the days of the original FinalBurn. It's just that there are now more directories and source files as the emulator has grown significantly.

src/
--/burn			<-- This is where the emulation code lives
----/devices		<-- This is where emulated devices (EEPROMS, etc) live
----/drv		<-- This is where the drivers for Games and Systems live
----/snd		<-- This is where the emulation for sound chips and other sound generating devices live
--/burner		<-- This is where the frontend code lives
--/cpu			<-- This is where the CPU emulation lives
--/dep			<-- This is where external dependencies live (such as libpng)
--/intf			<-- This is where the platform specific code for each platform that FBNeo supports live (e.g. Video and Sound output)

Porting FBNeo to different systems

In the main source tree, you will see in the intf directory various implementations for different platforms. You should look in here when porting to new platforms. We also encourage new ports, and are happy to have them merged in to the main sourcetree. There is probably a project there for someone to re-implement some of the older ports using the intf standard, should they want to.

For portability we define the following types

unsigned char   UINT8;
signed char     INT8;
unsigned short	UINT16;
signed short	INT16;
unsigned int	UINT32;
signed int      INT32;
signed int64	INT64;
unsigned int64  UINT64;

It is recommended that you take a look at the other #defines and structs in the header files in Burn and Burner, and don't forget that some of the existing code in the intf directory will come in handy for new ports.

fbneo's People

Contributors

0xe1f avatar arcadez2003 avatar barbudreadmon avatar barry65536 avatar beworld2018 avatar charles32k avatar cjom avatar crystalct avatar dinkc64 avatar energy-t avatar eziochiu avatar fastpop72 avatar igor-arabe avatar iq132 avatar jackc029735 avatar mistydreams avatar nbeing avatar neokobe avatar pjft avatar ryvius86 avatar sasuke-arcade avatar shaunquick avatar substring avatar sumavisionq5 avatar superctr avatar svipur avatar taoenwen avatar tmaul avatar tokuio avatar zxmarcos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fbneo's Issues

Improve speed rom scan

Is it possible to speed up ROM scanning?
Maybe adding an option that only controls the hash of the zip file and not the content of it.

magipur

it got added in MAME 0,205, runs on the tumbleb driver.

static struct BurnRomInfo MagipurRomDesc[] = {
	{ "2-27c040.bin",   0x80000, 0x135c5de7, BRF_ESS | BRF_PRG }, //  0	68000 Program Code
	{ "3-27c040.bin",   0x80000, 0xee4b16da, BRF_ESS | BRF_PRG }, //	 1
	
	{ "6-27c040.bin",   0x40000, 0xb25b5872, BRF_GRA },	     //  2	Tiles
	{ "7-27c040.bin",   0x40000, 0xd3c3a672, BRF_GRA },	     //  3
	
	{ "4-27c040.bin",   0x40000, 0xe460a77d, BRF_GRA },	     //  4	Sprites
	{ "5-27c040.bin",   0x40000, 0x79c53627, BRF_GRA },	     //  5
	
	{ "1-27c020.bin",   0x40000, 0x84dcf771 , BRF_SND },	     //  6	Samples
};

Some not working games that works on Mame2010.

I tested some games that i usually run with mame2010 core.

fbneo has issues on these:

afighter >> strange blue screen, don't work
bagman >> works but the screen is translated right
dotron >> works but lacks some commands and seems there's a button stuck
enduror >> strange screen and don't work
gemini >> same above

Hope they will be fixed soon, thanks.

Sort out the wiki

I have bulk added the help files to the wiki, so that is now open for pull requests :) Currently full of references to FBAlpha and is out of date.

Makes a good first issue if anyone wants to contribute...

(as suggested on #86 )

Interest thread: Sega System C/C2

Same CPU, sound, graphics as Genesis/Mega Drive, but with an additional Altera EPM5032 and Sega 315-5242 color encoder. Supports games like Puzzle & Action Ichidant/Tant-R, Columns, and Puyo Puyo.

pitapat support

Only thing I did was match the offsets of the chips as well as providing some game info in the crospang driver.

// Pitapat Puzzle

static struct BurnRomInfo pitapatRomDesc[] = {
{ "ua02.j3", 0x80000, 0xb3d3ac7e, 1 | BRF_PRG | BRF_ESS }, // 0 68k Code
{ "ua03.j5", 0x80000, 0xeda85635, 1 | BRF_PRG | BRF_ESS }, // 1

{ "us02.r4",	0x10000, 0xc7cc05fa, 2 | BRF_PRG | BRF_ESS }, //  2 Z80 Code

{ "us08.u7",	0x40000, 0xdab99a43, 3 | BRF_SND },           //  3 Oki Samples

{ "uc07.t11",	0x80000, 0xf4a529c1, 4 | BRF_GRA },           //  4 Background Tiles
{ "uc08.r11",	0x80000, 0x3f827218, 4 | BRF_GRA },           //  5

{ "ud14.p11",	0x40000, 0x92e23e92, 5 | BRF_GRA },           //  6 Sprites
{ "ud15.m11",	0x40000, 0x7d3d6dba, 5 | BRF_GRA },           //  7
{ "ud16.l11",	0x40000, 0x5c09dff8, 5 | BRF_GRA },           //  8
{ "ud17.j11",	0x40000, 0xd4c67e2e, 5 | BRF_GRA },           //  9

};

STD_ROM_PICK(pitapat)
STD_ROM_FN(pitapat)

static INT32 pitapatInit()
{
return DrvInit(pitapatLoadRoms);
}

struct BurnDriver BurnDrvPitapat = {
"pitapat", NULL, NULL, NULL, "1997 ",
"Pitapat Puzzle\0", NULL, "F2 System", "Puzzle",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING, 2, HARDWARE_MISC_POST90S, GBF_PUZZLE, 0,
NULL, pitapatRomInfo, pitapatRomName, NULL, NULL, NULL, NULL, CrospangInputInfo, PitapatDIPInfo,
pitapatInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 0x300,
320, 240, 4, 3
};

only thing missing is the dipswitch.

[megadrive] Some issues

Tested on libretro port only.

Someone was asking me how fbneo performed against genplus_gx, tried 2 games, found 2 issues 🤣

psolar : I think the game worked in the past, now it's crashing after a few seconds with the following trace

    #0 0x7f47f3f299d1 in write_a13_word ../../burn/drv/megadrive/stm95.cpp:260
    #1 0x7f47f3f29def in write_a13_byte ../../burn/drv/megadrive/stm95.cpp:273
    #2 0x7f47f4db50ac in WriteByte ../../cpu/m68000_intf.cpp:297
    #3 0x7f47f4db50ac in M68KWriteByte ../../cpu/m68000_intf.cpp:714
    #4 0x7f47f3687645 in m68ki_write_8_fc ../../cpu/m68k/m68kcpu.h:1154
    #5 0x7f47f3687645 in m68k_op_move_8_al_i ../../cpu/m68k/m68kops.c:19046
    #6 0x7f47f35670b8 in m68k_executeMD ../../cpu/m68k/m68kcpu.c:888
    #7 0x7f47f3f20e19 in SekRunM68k ../../burn/drv/megadrive/megadrive.cpp:71
    #8 0x7f47f3f27ac5 in MegadriveFrame() ../../burn/drv/megadrive/megadrive.cpp:4785
    #9 0x7f47f37b0a7e in BurnDrvFrame ../../burn/burn.cpp:746
    #10 0x7f47f4fea8ee in ForceFrameStep ../../burner/libretro/libretro.cpp:452
    #11 0x7f47f4fecd23 in retro_run ../../burner/libretro/libretro.cpp:864
    #12 0x5567155d83ac  (/usr/bin/retroarch+0x603ac)
    #13 0x5567155dd58b  (/usr/bin/retroarch+0x6558b)
    #14 0x5567155d70df  (/usr/bin/retroarch+0x5f0df)
    #15 0x7f4812eb579a in __libc_start_main (/lib64/libc.so.6+0x2379a)
    #16 0x5567155d4039  (/usr/bin/retroarch+0x5c039)

bomber : music is not working properly on the title screen

Hopefully the 3rd game i tried (sonic) worked properly, and i could confirm both emulators run at the same speed 👍 .

I'll try to do a complete check of the system with asan soon.

Add neogeo CHD

Hello, is-it possible to add neogeo CHD in the emulator, please
Thanks

7zip roms are not supported for arcade and console (msx, sms and other)

Hello, when you scan (and re-scan) the repertory (for example) msx on 7z format = the roms are not detected. (by changing the roms in zip format = no problem)
Is-it possible to add 7zip support ?
Version of "fbn-x64-vs.7z" in github-commit-88177af3210b938c4247abaa59eec09513db8fc0 (appveyor-build)
Thanks

ESP Ra.De. (esprade) Audio Clicks/Pops

There are some inconsistent audio clicks or pops in this game in FBN that I can't reproduce in MAME. The easiest way to hear one is to keep inserting credits at the title screen. Eventually I'll get a pop. When enemies explode there's a click at the end of the sound effect sometimes too. I recorded a clip where I isolated a few examples.

esprade fbn clicks.zip

I haven't noticed this type of problem in any other games I've tried in FBN libretro so far.

Guru Meditation

Hello
I have an error with the latest version
Thank you
Best regards

Capture
Capture2
Capture3

snes driver warnings

@tmaul I noticed a few warnings when building the snes driver :

../../burn/drv/snes/snes.h:147:18: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11
INT32 cpumode = 0;
^
../../burn/drv/snes/snes.h:148:15: warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11
INT8 inwai = 0; // Set when WAI is called
^
../../burn/drv/snes/snes_dsp.cpp:42:3: warning: unnamed type with no linkage used to declare variable ' dsp' with linkage
} dsp;
^~~

About the first 2 warnings, it might be better to avoid c++11 code whenever it's possible, some targets for the libretro port don't like that (especially console targets like the ps3 iirc).

The third warning is solved by making the struct static.

Missing controls using a trackball and "Mouse (Ball only)" option.

I added a trackball to the commands, i selected the "Mouse (Ball only)" on the Controls menù and everything seems works well with lightgun games.
I have instead an issue in Thunder Blade and Thunder Ceptor because when i select "Mouse (Ball only)" i can't accelerate because the core doesn't let me set the Accelerate or Throttle commands. I can only move (with trackball) and shoot (with buttons).

VS2019 broken

After the latest commits related with new drivers of berzerk and frenzy, I am unable to compile it through VS2019.
The log it's attached to this ticket: log.txt

T & W Unit video issues

Not sure if it's related to the duping/skipping mentioned in an issue @libretro#12 but in Visual Studio 2019 the screen doesn't update at all. Looking into it more: I've discovered it never hits certain memory handlers e.g. the IO one declared in the TMS init or any of the DMA ones in MK1. @dinkc64 last build posted at neosource works ok though so maybe GCC is better at hiding whatever the problem is. If I can ever get enough time to read the CMake instructions, I would like to try a clang build but other than that I've hit my skill limit on this one!

UI Language does'nt work

Hello,
In UI language, "french.flt" and other language for test does'nt work, english only.
Thanks for your help :o)

Playmark driver additions

It seems that the structures for hrdtimes and wbeachvl are a lot different, despite running on the same hardware. For clones, there's bigtwinb and luckboomh, we could support luckboom as a parent set. Please do note that hrdtimes has no sound.

Dodonpachi DiaOuJou Black Label Incorrect core timing! (Should be easy fix, I hope)

Hi there.

So the the core timing for Dodonpachi DiaOuJou Black Label (and white label) is incorrect. It's listed at a generic "60.0" fps. The correct timing (per mame) is 59.17, this may not seem like a big difference, but it makes a difference and a ton of shmup players want to use FBN for playing this game accurately.

Thank you!

Possible input lag regression with CPS1

I was benchmarking input lag for some systems against the fbalpha2012 libretro core (which is based on 0.2.97.24) and noticed something : fbalpha2012 has 1 frame of input lag on cps1, while current fbneo has 2 frames. I only tested this on sf2 & dino.
On a sidenote, CPS2 (and the few other systems i tested) has the same input lag on both cores.

bCmdOptUsed usage

in main.cpp line 876 bCmdOptUsed is trying to be set to 2, when it's a Boolean. Looks like at some point it was used to set to fullscreen, but I am not sure it's working as expected currently as it can only ever be 1. Does anyone have any ideas on what to do with this? Convert to an int and rename to nCmdOptUsed? Or set to 1 instead of 2?

bonzeadv coin error

The games in this driver mention a cchip bios, however there is no cchip bios in FBNeo (there is a RomDesc for it though)

[Request] Tetris: The Grand Master (tgmj)

It was great to see that the Tetris: The Grand Master 2 (tgm2/p) slowdown bug recently got fixed. However, I noticed that the first game in that series is not playable in FBA. If you field requests from users, I'd like to add a request for Tetris: The Grand Master (tgmj in MAME). That game is emulated well in recent versions of MAME, but it has a lot of input lag. For that reason, playing it in FBA would be a big improvement over the status quo.

Please excuse if this is the wrong venue for making a feature request.

Sand Scorpion: no music

Sand Scorpion, sound effects are working but music isn't starting.

Tested on libretro (current) + stand-alone (end of May), win7 x64.
Music is working in MAME.

Freeze with NeoGeo games

Last standalone debug version has problems of screen freeze on initial NeoGeo boot (green screen).

Update: The problem occur only on Win XP, seem that it work on Win 10

Ghosts 'n Goblins (gng) RAM ROM Check Screen Colored

Pretty minor thing, but when booting, the graphic tiles and RAM ROM check text are colored blue. MAME shows that stuff in greyscale. Oddly, when resetting FBN libretro (in RetroArch with F10), the graphics show in full color rather than blue.

MAME:
mame

FBN (reset once):
fba

Wrong crc32 of bk3e (md)

The crc32 of MegaDrive rom bare knuckle iii (english translation).bin should be 68917751 instead of 041b99f7.

Or was there a newer translation than Twilight v1.0?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.