mancity
Posts: 58
Joined: Tue Dec 23, 2014 8:18 pm

Re: PiFBA released - Final Burn Alpha arcade emulator

Wed Jan 07, 2015 9:41 am

Think I will try and source a few more verisons of mslug 4 & 5 and try all of them separately to see if they work, and if not, try from the command line like you say.

Cheers,

mancity
Posts: 58
Joined: Tue Dec 23, 2014 8:18 pm

Re: PiFBA released - Final Burn Alpha arcade emulator

Wed Jan 07, 2015 10:03 am

Just re-read the Google page on PiFBA and it mentions the FBACache_windows.zip included in the PiFBA download for Windows which I was going to try, but when you run the .exe nothing actually happens?

mancity
Posts: 58
Joined: Tue Dec 23, 2014 8:18 pm

Re: PiFBA released - Final Burn Alpha arcade emulator

Thu Jan 08, 2015 7:22 am

Well ive tried plenty of different BIOS's and ROM's and I cannot get Metal Slug 4 to work at all with sound.

I get an MVS slot check error upon starting the ROM and another then I 'add a coin'.

Tried it from terminal and it doesn't leave anything behind for me to check. Also tried all of the OC settings as well as standard and everytime I get the same.

The MVS ROM check/ Slot check error image is attached.
Attachments
image1.JPG
image1.JPG (23.8 KiB) Viewed 8486 times

mancity
Posts: 58
Joined: Tue Dec 23, 2014 8:18 pm

Re: PiFBA released - Final Burn Alpha arcade emulator

Thu Jan 08, 2015 10:10 am

Just found this here which is the issue I have so will try it tonight -

http://blog.petrockblock.com/forums/top ... ain-games/

mancity
Posts: 58
Joined: Tue Dec 23, 2014 8:18 pm

Re: PiFBA released - Final Burn Alpha arcade emulator

Sun Jan 11, 2015 12:18 pm

Is there anyway to change the aspect ratio of PiFBA to 4:3?

Scatterface
Posts: 1
Joined: Tue Jan 20, 2015 10:03 am

Re: PiFBA released - Final Burn Alpha arcade emulator

Tue Jan 20, 2015 10:08 am

Hello,

I'm having problems configuring the neo geo on the latest piplay with fba. Neo Geo games are starting and the controls for player 1 work but changes in the fba2x.cfg do have no effect on the neo geo games. I was trying to enter the service menu to activate the blood for metal slug but when I press L+R+SELECT nothing happens. Select alone just inserts coins. I tried activating the scanlines and changing the controls in fba2x.cfg -> no effect.

Can anyone help me please? Do I have to do something I didn't think of?

Thx.

P-Nut
Posts: 3
Joined: Mon Feb 09, 2015 8:58 pm

Re: PiFBA released - Final Burn Alpha arcade emulator

Mon Feb 09, 2015 9:02 pm

I see that there is a solution to having metalslug 3 work on the raspberry pi... can someone point me the right way because I cant get it to work :(

RetroFredde
Posts: 11
Joined: Thu Feb 20, 2014 9:16 pm

Re: PiFBA released - Final Burn Alpha arcade emulator

Tue Feb 10, 2015 9:24 am

What am I doing wrong here? I simply can't get my 360 Hori arcade stick working with piFBA on RPi2, I've changed the fba2x.cfg in so many ways that I don't know what to do anymore, and I've downloaded cfg-files that people say fix their sticks, but it still doesn't work. Yet I see people using arcade sticks with piFBA so I'm now hoping someone over here could help me out.

The stick works fine in Mame4allpi with this line in /etc/rc.local

sudo xboxdrv --detach-kernel-driver --id 0 --led 2 --dpad-as-button --silent & sleep 1

but jstest /dev/input/js0 shows some weird readings and I guess that's where my problem lies. The stick directions show on/off readings at 0,1,2,3 and I think piFBA want the analog 32767/-32767 raw axis figures for the joystick input, right?

Question is, how do I get the arcade stick to work in piFBA without messing it up for Mame4allpi? :/

Solved: Wiring my own stick and using an IPAC fixed everything. Not the simplest solution but it was fun and the end result is ten times better :)
Last edited by RetroFredde on Mon Mar 09, 2015 5:18 am, edited 1 time in total.

JTCook
Posts: 16
Joined: Tue Nov 12, 2013 1:53 am

Re: PiFBA released - Final Burn Alpha arcade emulator

Mon Feb 16, 2015 9:49 pm

I was wondering how enable Outrun in Final Burn Alpha? I know there is code there to support it, but am wondering if it has been disabled in the emulator?

barrybarryk
Posts: 20
Joined: Thu Jul 19, 2012 12:11 pm

Re: PiFBA released - Final Burn Alpha arcade emulator

Tue Feb 17, 2015 12:13 am

JTCook wrote:I was wondering how enable Outrun in Final Burn Alpha? I know there is code there to support it, but am wondering if it has been disabled in the emulator?
I don't think there is with the version of PiFBA floating around, it's based on a very old port of Final Burn Alpha for the GP2X and doesn't support a lot of the hardware/games the newer versions do.

But there might be a new version soon, I just managed to compile and play some newer games on this version on my Pi2. It's based on a much, much newer version of the FBA codebase and supports tons more games. I wouldn't try compiling it just yet unless you just want to have a play with the code. It was a pain to compile and has some built in issues, mostly down to it's target hardware, like drawing to a tiny 320x240 window and weird button configs, but they shouldn't take long to work out.

Edit: If you do want to have a play with it this is the Makefile I used to get it to compile:

Code: Select all

# Makefile for FBA, for use with GNU make
#
# The first pass makes sure all intermediary targets are present. The second pass updates
# any targets, if necessary. (Intermediary) targets which have their own unique rules
# are generated as required.

#
#	Flags. Uncomment any of these declarations to enable their function.
#

# Specify the name of the executable file, without ".exe"
NAME = fbasdl

# Include Unicode support
UNICODE = 1

# Build A68K ASM 68000 core
# BUILD_A68K = 1

# Include x86 Assembly routines
# BUILD_X86_ASM = 1

# Build for x64 targets (MinGW64 and MSVC only, this will undefine BUILD_A68K and BUILD_X86_ASM)
# BUILD_X64_EXE = 1

# Build for Windows XP target (for use with Visual Studio 2012)
# BUILD_VS2012_XP_TARGET = 1

# Include 7-zip support
INCLUDE_7Z_SUPPORT = 1

# Include Toaplan sound sample hacks for games without MCU dumps
TOAPLAN_SOUND_SAMPLES_HACK = 1

# Include symbols and other debug information in the executable
# SYMBOL = 1

# Include features for debugging drivers
# DEBUG	= 1

# Include rom set verifying features (comment this for release builds)
# ROM_VERIFY = 1

# Force recompilation of files that need it (i.e. use __TIME__, __DATE__, SPECIALBUILD).
FORCE_UPDATE = 1

# Use the __fastcall calling convention when interfacing with A68K/Musashi/Doze
# FASTCALL = 1

# Compress executable with upx (the DEBUG option ignores this)
# COMPRESS = 1

# Endianness
LSB_FIRST = 1

# Include png.h from burner.h
INCLUDE_LIB_PNGH = 1


# Check for changes in header files
DEPEND = 1

# Include features for debugging drivers
# DEBUG = 1

# Perl is available
PERL = 1

# Choose emulation cores
# BUILD_A68K = 1
 BUILD_C68K = 1
 BUILD_M68K = 1
USE_LIBAO = 1

#
#	Declare variables
#

# Make a special build, pass the quoted text as comment (use FORCE_UPDATE declaration below to force recompilation of resources)
# SPECIALBUILD = "This text will appear in the property sheet of the .exe file"

ifndef	CPUTYPE
	CPUTYPE	= ARM7
endif

# ifeq	($(CPUTYPE),i686)
# 	ppro = ppro
# endif

ifneq	($(CPUTYPE),i686)
	NAME := $(NAME)$(CPUTYPE)
endif

#
#	Specify paths/files
#

objdir	= obj/dingux-gcc/
srcdir	= src/

alldir	= burn \
		burn/devices \
		burn/drv \
		burn/drv/capcom \
		burn/drv/cave \
		burn/drv/cps3 \
		burn/drv/dataeast \
		burn/drv/galaxian \
		burn/drv/irem \
		burn/drv/konami \
		burn/drv/megadrive \
		burn/drv/pce \
		burn/drv/neogeo \
		burn/drv/pgm \
		burn/drv/pre90s \
		burn/drv/psikyo \
		burn/drv/pst90s \
		burn/drv/sega \
		burn/drv/sms \
		burn/drv/snes \
		burn/drv/taito \
		burn/drv/toaplan \
		burn/snd \
		intf \
		intf/audio \
		intf/audio/sdl \
		intf/cd \
		intf/cd/sdl \
		intf/input \
		intf/input/sdl \
		intf/video \
		intf/video/sdl \
		intf/video/scalers \
		cpu \
		cpu/arm \
		cpu/arm7 \
		cpu/c68k \
		cpu/cz80 \
		cpu/h6280 \
		cpu/hd6309 \
		cpu/i8039 \
		cpu/konami \
		cpu/m68k \
		cpu/m6502 \
		cpu/m6800 \
		cpu/m6805 \
		cpu/m6809 \
		cpu/nec \
		cpu/pic16c5x \
		cpu/s2650 \
		cpu/sh2 \
		cpu/tlcs90 \
		cpu/z80 \
		dep/scripts \
		dep/generated \
		sdl-dingux

incdir	= $(foreach dir,$(alldir),-I$(srcdir)$(dir)) -I$(objdir)dep/generated -I/local/include -I/include/SDL -I$(SDKSTAGE)/opt/vc/include -I$(SDKSTAGE)/opt/vc/include/interface/vcos/pthreads \
	-I$(SDKSTAGE)/opt/vc/include/interface/vmcs_host/linux -I/usr/include/SDL -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include

ifeq ($(OS),Windows_NT)
lib = -static -lstdc++ -lmingw32 -Wl,-Bdynamic -lSDL -lSDL_image -lz
else
lib = -lstdc++ -lSDL -lSDL_image -lz
endif

ifdef USE_LIBAO
	lib += -lao
endif

drvobj	+= \
		d_dodonpachi.o d_donpachi.o d_esprade.o d_feversos.o d_gaia.o d_guwange.o d_hotdogst.o d_korokoro.o d_mazinger.o \
		d_metmqstr.o d_pwrinst2.o d_sailormn.o d_tjumpman.o d_uopoko.o \
		\
		d_cps1.o \
		\
		d_cps2.o \
		\
		d_cps3.o \
		\
		d_actfancr.o d_backfire.o d_boogwing.o d_cbuster.o d_cninja.o d_darkseal.o d_dassault.o d_dec0.o d_dec8.o \
		d_dietgogo.o d_funkyjet.o d_karnov.o d_lemmings.o d_pktgaldx.o d_rohga.o d_sidepckt.o d_simpl156.o d_supbtime.o \
		d_tumblep.o d_vaportra.o \
		\
		d_galaxian.o \
		\
		d_m62.o d_m63.o d_m72.o d_m90.o d_m92.o d_m107.o d_vigilant.o \
		\
		d_88games.o d_ajax.o d_aliens.o d_blockhl.o d_bottom9.o d_contra.o d_crimfght.o d_gberet.o d_gbusters.o d_gradius3.o \
		d_gyruss.o d_hcastle.o d_hexion.o d_kontest.o d_mainevt.o d_mikie.o d_mogura.o d_nemesis.o d_parodius.o d_pooyan.o \
		d_rollerg.o d_scotrsht.o d_simpsons.o d_spy.o d_surpratk.o d_thunderx.o d_tmnt.o d_twin16.o d_ultraman.o d_vendetta.o \
		d_xmen.o \
		\
		d_neogeo.o \
		\
		d_pgm.o \
		\
		d_psikyo.o d_psikyo4.o d_psikyosh.o \
		\
		d_angelkds.o d_bankp.o d_dotrikun.o d_hangon.o d_outrun.o d_suprloco.o d_suprnova.o d_sys1.o d_sys16a.o d_sys16b.o d_sys18.o \
		d_xbrd.o d_ybrd.o \
		\
		d_arkanoid.o d_ashnojoe.o d_asuka.o d_bublbobl.o d_chaknpop.o d_darius2.o d_darkmist.o d_exzisus.o d_flstory.o d_lkage.o \
		d_minivdr.o d_othunder.o d_retofinv.o d_slapshot.o d_superchs.o d_taitob.o d_taitof2.o d_taitomisc.o d_taitox.o d_taitoz.o \
		d_tnzs.o d_wyvernf0.o \
		\
		d_batrider.o d_batsugun.o d_battleg.o d_bbakraid.o d_demonwld.o d_dogyuun.o d_fixeight.o d_ghox.o d_hellfire.o \
		d_kbash.o d_kbash2.o d_mahoudai.o d_outzone.o d_pipibibs.o d_rallybik.o d_samesame.o d_shippumd.o d_slapfght.o \
		d_snowbro2.o d_tekipaki.o d_truxton.o d_truxton2.o d_vfive.o d_vimana.o d_zerowing.o \
		\
		d_4enraya.o d_1942.o d_1943.o d_ambush.o d_arabian.o d_armedf.o d_atetris.o d_aztarac.o d_baraduke.o d_bionicc.o \
		d_blktiger.o d_blockout.o d_blueprnt.o d_bombjack.o d_capbowl.o d_commando.o d_cybertnk.o d_ddragon.o d_dkong.o \
		d_dynduke.o d_epos.o d_exedexes.o d_funkybee.o d_galaga.o d_gauntlet.o d_ginganin.o d_gng.o d_gunsmoke.o d_higemaru.o \
		d_ikki.o d_jack.o d_kangaroo.o d_kyugo.o d_ladybug.o d_lwings.o d_lastduel.o d_markham.o d_marineb.o d_meijinsn.o \
		d_mitchell.o d_mole.o d_momoko.o d_mrdo.o d_mrflea.o d_mustache.o d_mystston.o d_ninjakd2.o d_pacland.o d_pacman.o d_pac2650.o \
		d_pkunwar.o d_prehisle.o d_punchout.o d_psychic5.o d_quizo.o d_rallyx.o d_renegade.o d_rpunch.o d_route16.o d_scregg.o d_sf.o \
		d_skyfox.o d_skykid.o d_snk68.o d_solomon.o d_sonson.o d_srumbler.o d_tail2nose.o d_tecmo.o d_terracre.o d_tigeroad.o d_toki.o \
		d_vulgus.o d_wallc.o d_wc90.o d_wc90b.o d_wwfsstar.o d_xain.o \
		\
		d_1945kiii.o d_aerofgt.o d_airbustr.o d_aquarium.o d_blmbycar.o d_bloodbro.o d_crospang.o d_crshrace.o d_dcon.o \
		d_deniam.o d_ddragon3.o d_diverboy.o d_drgnmst.o d_drtomy.o d_egghunt.o d_esd16.o d_f1gp.o d_fstarfrc.o d_funybubl.o \
		d_fuukifg3.o d_gaelco.o d_gaiden.o d_galpanic.o d_galspnbl.o d_gotcha.o d_gumbo.o d_hyperpac.o d_jchan.o d_kaneko16.o \
		d_lordgun.o d_mcatadv.o d_midas.o d_mugsmash.o d_mwarr.o d_news.o d_nmg5.o d_nmk16.o d_ohmygod.o d_pass.o d_pirates.o \
		d_playmark.o d_powerins.o d_pushman.o d_raiden.o d_seta.o d_seta2.o d_shadfrce.o d_silkroad.o d_silvmil.o d_speedspn.o \
		d_suna16.o d_taotaido.o d_tecmosys.o d_tumbleb.o d_unico.o d_vmetal.o d_welltris.o d_wwfwfest.o d_xorworld.o d_yunsun16.o \
		d_zerozone.o \
		\
		d_parent.o \
		\
		#d_megadrive.o \
		#\
		#d_pce.o \
		#\
		#d_sms.o \
		#\
		#d_snes.o

ifdef USE_LIBAO
	depobj = ao_audio.o 
endif

depobj += \
		bzip.o config.o drv.o font.o stringset.o stubs.o \
		input.o main.o neocdlist.o paths.o run.o tchar.o \
		\
		sdl_audio.o sdl_input.o sdl_menu.o sdl_progress.o \
		sdl_run.o sdl_video.o snd.o \
		\
		ioapi.o unzip.o dat.o state.o zipfn.o \
		\
		gui_config.o gui_gfx.o gui_main.o gui_romlist.o gui_setpath.o \
		\
		interface.o \
		\
		cd_interface.o

depobj	+= \
		$(drvobj) \
		\
		burn.o burn_gun.o burn_led.o burn_memory.o burn_sound.o burn_sound_c.o cheat.o debug_track.o hiscore.o load.o \
		tiles_generic.o timer.o vector.o \
		\
		8255ppi.o 8257dma.o eeprom.o nmk004.o pandora.o seibusnd.o sknsspr.o slapstic.o t5182.o timekpr.o tms34061.o v3021.o vdc.o \
		\
		ay8910.o burn_y8950.o burn_ym2151.o burn_ym2203.o burn_ym2413.o burn_ym2608.o burn_ym2610.o burn_ym2612.o \
		burn_ym3526.o burn_ym3812.o burn_ymf278b.o c6280.o dac.o es5506.o es8712.o flt_rc.o fm.o fmopl.o ics2115.o iremga20.o \
		k005289.o k007232.o k051649.o k053260.o k054539.o msm5205.o msm5232.o msm6295.o namco_snd.o nes_apu.o rf5c68.o saa1099.o \
		samples.o segapcm.o sn76496.o upd7759.o vlm5030.o x1010.o ym2151.o ym2413.o ymdeltat.o ymf278b.o ymz280b.o \
		\
		arm7_intf.o arm_intf.o h6280_intf.o hd6309_intf.o konami_intf.o m6502_intf.o m6800_intf.o m6805_intf.o m6809_intf.o \
		m68000_intf.o nec_intf.o pic16c5x_intf.o s2650_intf.o tlcs90_intf.o z80_intf.o \
		\
		arm.o arm7.o h6280.o hd6309.o i8039.o konami.o m6502.o m6800.o m6805.o m6809.o nec.o pic16c5x.o s2650.o sh2.o tlcs90.o \
		v25.o z80.o z80daisy.o \
		\
		cave.o cave_palette.o cave_sprite.o cave_tile.o \
		\
		cps2_crpt.o cps.o cps_config.o cps_draw.o cps_mem.o cps_obj.o cps_pal.o cps_run.o cps_rw.o cps_scr.o cpsr.o cpsrd.o \
		cpst.o ctv.o fcrash_snd.o kabuki.o ps.o ps_m.o ps_z.o qs.o qs_c.o qs_z.o sf2mdt_snd.o \
		\
		cps3run.o cps3snd.o \
		\
		deco16ic.o \
		\
		gal_gfx.o gal_run.o gal_sound.o gal_stars.o \
		\
		irem_cpu.o \
		\
		k051316.o k051733.o k051960.o k052109.o k053245.o k053247.o k053251.o k053936.o k054000.o konamiic.o \
		\
		neo_decrypt.o neo_palette.o neo_run.o neo_sprite.o neo_text.o neo_upd4990a.o neogeo.o \
		\
		pgm_crypt.o pgm_draw.o pgm_prot.o pgm_run.o \
		\
		psikyo_palette.o psikyo_sprite.o psikyo_tile.o psikyosh_render.o \
		\
		fd1089.o fd1094.o genesis_vid.o mc8123.o sys16_fd1094.o sys16_gfx.o sys16_run.o \
		\
		cchip.o pc080sn.o pc090oj.o taito.o taito_ic.o taito_m68705.o tc0100scn.o tc0110pcr.o tc0140syt.o tc0150rod.o \
		tc0180vcu.o tc0220ioc.o tc0280grd.o tc0360pri.o tc0480scp.o tc0510nio.o tc0640fio.o tnzs_prot.o \
		\
		toa_bcu2.o toa_extratext.o toa_gp9001.o toa_palette.o toaplan1.o toaplan.o \
		\
		#megadrive.o \
		#\
		#pce.o \
		#\
		#sms.o \
		#\
		#snes_65816.o snes_io.o snes_main.o snes_ppu.o snes_spc700.o


ifdef	BUILD_M68K
ifdef	DEBUG
depobj += m68kdasm.o
endif
endif

autobj += $(depobj)

ifdef	BUILD_A68K
	a68k.o	= $(objdir)cpu/a68k/a68k.o
endif

ifdef	BUILD_C68K
autobj += c68k.o
endif

autdep	= $(autobj:.o=.d)

driverlist.h = $(srcdir)dep/generated/driverlist.h
ctv.h	= $(srcdir)dep/generated/ctv.h
toa_gp9001_func.h = $(srcdir)dep/generated/toa_gp9001_func.h
neo_sprite_func.h = $(srcdir)dep/generated/neo_sprite_func.h
cave_tile_func.h = $(srcdir)dep/generated/cave_tile_func.h
cave_sprite_func.h = $(srcdir)dep/generated/cave_sprite_func.h
psikyo_tile_func.h = $(srcdir)dep/generated/psikyo_tile_func.h
pgm_sprite.h = $(srcdir)dep/generated/pgm_sprite.h
build_details.h = $(srcdir)dep/generated/build_details.h



ifdef BUILD_M68K
allobj = $(objdir)cpu/m68k/m68kcpu.o $(objdir)cpu/m68k/m68kopnz.o $(objdir)cpu/m68k/m68kopdm.o $(objdir)cpu/m68k/m68kopac.o $(objdir)cpu/m68k/m68kops.o
endif

allobj += \
	$(foreach file,$(autobj:.o=.c), \
		$(foreach dir,$(alldir),$(subst $(srcdir),$(objdir), \
		$(firstword $(subst .c,.o,$(wildcard $(srcdir)$(dir)/$(file))))))) \
	$(foreach file,$(autobj:.o=.cpp), \
		$(foreach dir,$(alldir),$(subst $(srcdir),$(objdir), \
		$(firstword $(subst .cpp,.o,$(wildcard $(srcdir)$(dir)/$(file))))))) \
	$(foreach file,$(autobj:.o=.asm), \
		$(foreach dir,$(alldir),$(subst $(srcdir),$(objdir), \
		$(firstword $(subst .asm,.o,$(wildcard $(srcdir)$(dir)/$(file)))))))

ifdef BUILD_A68K
	allobj += $(a68k.o)
endif

alldep	= $(foreach file,$(autobj:.o=.c), \
		$(foreach dir,$(alldir),$(subst $(srcdir),$(objdir), \
		$(firstword $(subst .c,.d,$(wildcard $(srcdir)$(dir)/$(file))))))) \
	  $(foreach file,$(autobj:.o=.cpp), \
		$(foreach dir,$(alldir),$(subst $(srcdir),$(objdir), \
		$(firstword $(subst .cpp,.d,$(wildcard $(srcdir)$(dir)/$(file)))))))

#
#
#	Specify compiler/linker/assembler
#
#

HOSTCC = gcc-4.8
HOSTCXX = g++-4.8
CC	= gcc-4.8
CXX	= g++-4.8
LD	= $(CXX)
AS	= as

HOSTCFLAGS = $(incdir)
CFLAGS   = -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -O2 -fomit-frame-pointer -Wno-write-strings -DLSB_FIRST
CXXFLAGS = -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -O2 -fomit-frame-pointer -Wno-write-strings -fpermissive \
		-DLSB_FIRST

CFLAGS += -U__cdecl -U__fastcall -D__cdecl="" -D__fastcall=""
CXXFLAGS += -U__cdecl -U__fastcall -D__cdecl="" -D__fastcall=""

ifdef USE_LIBAO
	CFLAGS += -DUSE_LIBAO
	CXXFLAGS += -DUSE_LIBAO
endif

DEF = -DCPUTYPE=$(CPUTYPE) -DUSE_SPEEDHACKS -DBUILD_SDL

ifdef SPECIALBUILD
	DEF += -DSPECIALBUILD=$(SPECIALBUILD)
endif

ifdef	DEBUG
	DEF += -DFBA_DEBUG -g
	HOSTCFLAGS += -DFBA_DEBUG -g
endif

ifdef BUILD_A68K
	DEF += -DBUILD_A68K
endif

ifdef BUILD_C68K
	DEF += -DBUILD_C68K
endif

ifdef BUILD_M68K
	DEF += -DBUILD_M68K
endif

DEF += -DFILENAME=$(NAME)

ifdef PROFILE
	CFLAGS	+= -pg
else
	LDFLAGS	=
endif

CFLAGS += $(DEF) $(incdir)
CXXFLAGS += $(DEF) $(incdir)

ifndef DEBUG
LDFLAGS += -s
endif

ASFLAGS = -O1 -mcpu=cortex-a7

ifeq ($(OS),Windows_NT)
CFLAGS_CONSOLE = -mno-cygwin -mconsole -pipe -Wall -W $(DEF) $(incdir)
ASFLAGS += -f coff
else
ASFLAGS += -f elf
endif

#
#
#	Specify paths
#
#

vpath %.asm	$(foreach dir,$(alldir),$(srcdir)$(dir)/ )
vpath %.cpp	$(foreach dir,$(alldir),$(srcdir)$(dir)/ )
vpath %.c	$(foreach dir,$(alldir),$(srcdir)$(dir)/ )
vpath %.h	$(foreach dir,$(alldir),$(srcdir)$(dir)/ )

vpath %.o 	$(foreach dir,$(alldir),$(objdir)$(dir)/ )
vpath %.d 	$(foreach dir,$(alldir),$(objdir)$(dir)/ )

#
#
#	Rules
#
#

.PHONY:	all init cleandep clean

ifeq ($(MAKELEVEL),0)
ifdef DEPEND

all:	init $(autdep) $(autobj)
	@$(MAKE) -f Makefile.rpi2
else

all:	init $(autobj)
	@$(MAKE) -f Makefile.rpi2
endif
else

all:	$(NAME)

endif

#
#
#	Rule for linking the executable
#
#

ifeq ($(MAKELEVEL),1)

$(NAME):	$(allobj)
	@echo
	@echo Linking executable $(NAME)...
	@mkdir -p bin
	@$(LD) $(CFLAGS) $(LDFLAGS) -o bin/$@ $^ $(lib)
	@mkdir -p bin/skin
	@cp src/sdl-dingux/skin/*.png bin/skin/
endif

#
#	Generate the gamelist
#

burn.o burn.d:	driverlist.h

$(driverlist.h): $(drvobj) $(srcdir)dep/scripts/gamelist.pl
ifdef	PERL
	@perl $(srcdir)dep/scripts/gamelist.pl -o $@ -l gamelist.txt \
		$(filter %.cpp,$(foreach file,$(drvobj:.o=.cpp),$(foreach dir,$(alldir), \
		$(firstword $(wildcard $(srcdir)$(dir)/$(file))))))
else
ifeq ($(MAKELEVEL),1)
	@echo
	@echo Warning: Perl is not available on this system.
	@echo $@ cannot be updated or created!
	@echo
endif
endif

#
#	Compile 68000 cores
#

# A68K

ifdef	BUILD_A68K
	$(a68k.o):	fba_make68k.c
		@echo Compiling A68K MC68000 core...
		@$(HOSTCC) $(HOSTCFLAGS) $(LDFLAGS) -DWIN32 -Wno-unused -Wno-conversion -Wno-missing-prototypes \
			-s $< -o $(objdir)/dep/generated/fba_make68k
		@$(objdir)dep/generated/fba_make68k $(@:.o=.asm) \
			$(@D)/a68k_tab.asm 00
		@echo Assembling A68K MC68000 core...
		@$(AS) $(ASFLAGS) $(@:.o=.asm) -o $@
endif

# Musashi
#
ifdef BUILD_M68K
$(objdir)cpu/m68k/m68kcpu.o: $(srcdir)cpu/m68k/m68kcpu.c $(objdir)dep/generated/m68kops.h $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
	@echo Compiling Musashi MC680x0 core \(m68kcpu.c\)...
	@$(CC) $(CFLAGS) -c $(srcdir)cpu/m68k/m68kcpu.c -o $(objdir)cpu/m68k/m68kcpu.o

$(objdir)cpu/m68k/m68kops.o: $(objdir)cpu/m68k/m68kmake $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kops.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
	@echo Compiling Musashi MC680x0 core \(m68kops.c\)...
	@$(CC) $(CFLAGS) -c $(objdir)dep/generated/m68kops.c -o $(objdir)cpu/m68k/m68kops.o

$(objdir)cpu/m68k/m68kopac.o: $(objdir)cpu/m68k/m68kmake $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kopac.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
	@echo Compiling Musashi MC680x0 core \(m68kopac.c\)...
	@$(CC) $(CFLAGS) -c $(objdir)dep/generated/m68kopac.c -o $(objdir)cpu/m68k/m68kopac.o

$(objdir)cpu/m68k/m68kopdm.o: $(objdir)cpu/m68k/m68kmake $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kopdm.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
	@echo Compiling Musashi MC680x0 core \(m68kopdm.c\)...
	@$(CC) $(CFLAGS) -c $(objdir)dep/generated/m68kopdm.c -o $(objdir)cpu/m68k/m68kopdm.o

$(objdir)cpu/m68k/m68kopnz.o: $(objdir)cpu/m68k/m68kmake $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kopnz.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
	@echo Compiling Musashi MC680x0 core \(m68kopnz.c\)...
	@$(CC) $(CFLAGS) -c $(objdir)dep/generated/m68kopnz.c -o $(objdir)cpu/m68k/m68kopnz.o

$(objdir)dep/generated/m68kops.h: $(objdir)cpu/m68k/m68kmake $(srcdir)cpu/m68k/m68k_in.c
	$(objdir)/cpu/m68k/m68kmake $(objdir)dep/generated/ $(srcdir)cpu/m68k/m68k_in.c

$(objdir)cpu/m68k/m68kmake: $(srcdir)cpu/m68k/m68kmake.c
	@echo Compiling Musashi MC680x0 core \(m68kmake.c\)...
	@$(HOSTCC) $(HOSTCFLAGS) $(srcdir)cpu/m68k/m68kmake.c -o $(objdir)cpu/m68k/m68kmake
endif

#
#	Extra rules for generated header file cvt.h, needed by ctv.cpp
#

ctv.d ctv.o:	$(ctv.h)

$(ctv.h):	ctv_make.cpp
	@echo Generating $(srcdir)dep/generated/$(@F)...
	@$(HOSTCXX) $(LDFLAGS) $< -o $(objdir)dep/generated/ctv_make
	@$(objdir)dep/generated/ctv_make >$@

#
#	Extra rules for generated header file toa_gp9001_func.h, needed by toa_gp9001.cpp
#

toa_bcu2.d toa_bcu2.o toa_gp9001.d toa_gp9001.o: $(toa_gp9001_func.h)

$(toa_gp9001_func.h):	$(srcdir)dep/scripts/toa_gp9001_func.pl
	@$(srcdir)dep/scripts/toa_gp9001_func.pl -o $(toa_gp9001_func.h)

#
#	Extra rules for generated header file neo_sprite_func.h, needed by neo_sprite.cpp
#

neo_sprite.d neo_sprite.o: $(neo_sprite_func.h)

$(neo_sprite_func.h):	$(srcdir)dep/scripts/neo_sprite_func.pl
	@$(srcdir)dep/scripts/neo_sprite_func.pl -o $(neo_sprite_func.h)

#
#	Extra rules for generated header file cave_tile_func.h, needed by cave_tile.cpp
#

cave_tile.d cave_tile.o: $(cave_tile_func.h)

$(cave_tile_func.h):	$(srcdir)dep/scripts/cave_tile_func.pl
	@perl $(srcdir)dep/scripts/cave_tile_func.pl -o $(cave_tile_func.h)

#
#	Extra rules for generated header file cave_sprite_func.h, needed by cave_sprite.cpp
#

cave_sprite.d cave_sprite.o: $(cave_sprite_func.h)

$(cave_sprite_func.h):	$(srcdir)dep/scripts/cave_sprite_func.pl
	@perl $(srcdir)dep/scripts/cave_sprite_func.pl -o $(cave_sprite_func.h)

#
#	Extra rules for generated header file psikyo_tile_func.h / psikyo_sprite_func.h, needed by psikyo_tile.cpp / psikyo_sprite.cpp
#

psikyo_tile.d psikyo_tile.o psikyosprite.d psikyo_sprite.o: $(psikyo_tile_func.h)

$(psikyo_tile_func.h):	$(srcdir)dep/scripts/psikyo_tile_func.pl
	@perl $(srcdir)dep/scripts/psikyo_tile_func.pl -o $(psikyo_tile_func.h)

#
#	Extra rules for generated header file pgm_sprite.h, needed by pgm_draw.cpp
#

pgm_draw.d pgm_draw.o:	$(pgm_sprite.h)

$(pgm_sprite.h):	pgm_sprite_create.cpp
	@echo Generating $(srcdir)dep/generated/$(@F)...
	@$(HOSTCXX) $(LDFLAGS) $< -o $(objdir)dep/generated/pgm_sprite_create
	@$(objdir)dep/generated/pgm_sprite_create >$@

ifeq ($(MAKELEVEL),1)
ifdef DEPEND

include	$(alldep)

endif
endif

#
#	Generic rules for C/C++ files
#

ifeq ($(MAKELEVEL),0)

%.o:	%.cpp
	@echo Compiling $<...
	@$(CXX) $(CXXFLAGS) -c $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F)

%.o:	%.c
	@echo Compiling $<...
	@$(CC) $(CFLAGS) -Wno-unused -Wno-conversion -Wno-missing-prototypes -c $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F)

%.o:	%.asm
	@echo Assembling $<...
	@$(AS) $(ASFLAGS) $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F)

else

%.o:	%.c
	@echo Compiling $<...
	@$(CC) $(CFLAGS) -Wno-unused -Wno-conversion -Wno-missing-prototypes -c $< -o $@

%.o:	%.asm
	@echo Assembling $<...
	@$(AS) $(ASFLAGS) $< -o $@

%.o:
	@echo Compiling $<...
	@$(CC) $(CXXFLAGS) -c $< -o $@

endif

#
#	Generate dependencies for C/C++ files
#

ifdef DEPEND

%.d:	%.c
	@echo Generating depend file for $<...
	@$(CC) -MM -MT "$(subst $(srcdir),$(objdir),$(<D))/$(*F).o $(subst $(srcdir),$(objdir),$(<D))/$(@F)" -x c++ $(CFLAGS) $< >$(subst $(srcdir),$(objdir),$(<D))/$(@F)

%.d:	%.cpp
	@echo Generating depend file for $<...
	@$(CXX) -MM -MT "$(subst $(srcdir),$(objdir),$(<D))/$(*F).o $(subst $(srcdir),$(objdir),$(<D))/$(@F)" -x c++ $(CXXFLAGS) $< >$(subst $(srcdir),$(objdir),$(<D))/$(@F)

endif

#
#	Phony targets
#

init:

ifdef	DEBUG
	@echo Making debug build...
else
	@echo Making normal build...
endif
	@echo
	@mkdir -p $(foreach dir, $(alldir),$(objdir)$(dir))
	@mkdir -p $(srcdir)dep/generated

cleandep:
	@echo Removing depend files from $(objdir)...
	@for dir in $(alldir); do rm -f $(objdir)$$dir/*.d; done

clean:
	@echo Removing all files from $(objdir)...
	@rm -f -r $(objdir)
	@rm -f -r $(ctv.h)

ifdef	PERL
	@echo Removing all files generated with perl scripts...
	@rm -f -r $(driverlist)
endif
	@echo Removing executable file...
	@rm -f bin/$(NAME)

#
#	Rule to force recompilation of any target that depends on it
#

FORCE:
Edited again: Actually don't copy paste that makefile, I'm pretty sure the forums formatting has broken it, though you can still use it to see the settings I used to get it to compile.

bidinou
Posts: 68
Joined: Fri Sep 27, 2013 8:53 am
Location: France

Re: PiFBA released - Final Burn Alpha arcade emulator

Fri Feb 20, 2015 12:41 pm

It seems Squid has resumed development ! Excellent news !! Any details ?
(posting this on the mame4all thread as well)

barrybarryk
Posts: 20
Joined: Thu Jul 19, 2012 12:11 pm

Re: PiFBA released - Final Burn Alpha arcade emulator

Fri Feb 20, 2015 2:00 pm

Haven't seen any real changes yet, but if he's working on it it could happen.

I've been working with that version of FBA-SDL posted above over the last few days and just managed to strip out the SDL rendering and replace it with some gl es / dispmanx rendering so it's now fullscreen and hardware accelerated for scaling / filters etc. Still have to add in the Cyclone 68k ASM core (or some other ASM variant, haven't tested each one for compatibility yet) to give the emulation speed a boost, probably the same with the Z80, and then add in proper front end/menu so you can tweak settings while it's running from the controller (like btn/scaler/filter and dip configs per game). The real benefit is it's built on a recent version of FBA with much, much better support.

I'd work on threading it out too but don't really know where to start. It'd probably mean a major rewrite to how FBA works, since to really get any decent benefit from multithreading the emulated sound processors and cpus by FBA really would need to be separated (from what little I understand of it).

KitchUK
Posts: 256
Joined: Fri Jul 19, 2013 5:40 pm

Re: PiFBA released - Final Burn Alpha arcade emulator

Fri Feb 20, 2015 2:47 pm

barrybarryk wrote:Haven't seen any real changes yet, but if he's working on it it could happen.

I've been working with that version of FBA-SDL posted above over the last few days and just managed to strip out the SDL rendering and replace it with some gl es / dispmanx rendering so it's now fullscreen and hardware accelerated for scaling / filters etc. Still have to add in the Cyclone 68k ASM core (or some other ASM variant, haven't tested each one for compatibility yet) to give the emulation speed a boost, probably the same with the Z80, and then add in proper front end/menu so you can tweak settings while it's running from the controller (like btn/scaler/filter and dip configs per game). The real benefit is it's built on a recent version of FBA with much, much better support.

I'd work on threading it out too but don't really know where to start. It'd probably mean a major rewrite to how FBA works, since to really get any decent benefit from multithreading the emulated sound processors and cpus by FBA really would need to be separated (from what little I understand of it).
It would be fantastic to get support for more games! (CPS3?)

bidinou
Posts: 68
Joined: Fri Sep 27, 2013 8:53 am
Location: France

Re: PiFBA released - Final Burn Alpha arcade emulator

Fri Feb 20, 2015 2:57 pm

Edit : deleted
Last edited by bidinou on Mon Feb 23, 2015 10:41 am, edited 1 time in total.

barrybarryk
Posts: 20
Joined: Thu Jul 19, 2012 12:11 pm

Re: PiFBA released - Final Burn Alpha arcade emulator

Fri Feb 20, 2015 3:00 pm

CPS3 is weird, I've gotten CPS3 to run on the versions of PiFBA floating around by compiling in support but they're really old rom versions and there's no audio (I had a go at tweaking the audio for it but it's still garbled, I'm missing something in the conversion) though they do run at full speed.

In the newer version I'm working with now they all run with a modern mame 0.15something version and have proper audio though they're too slow. I think adding either the 6800 ASM module or the newest SH2 core from the latest version of FBA (They made some tweaks to it recently) should fix it.

Edit: Is there a link for the version of FBA in the video? I can't find it.

Another edit: I've managed to get the SFIII series running full speed with audio on the 0.2.97.31 version of FBA (It's much more recent and has far more compatible games, somewhere in the region of 3000) but the tweaks to the SH2 cpu core implementation that speed up SFIII to fully playable break Strikers 1945 II & III and probably some other SH2 based games. Strikers 1945 II & III were only running at about 5 fps anyway so I don't think it's a big deal breaking them, but does anyone know of other notable SH2 based I should be wary of breaking?

JustaLiriK
Posts: 9
Joined: Thu Jun 05, 2014 1:03 pm
Location: Ardèche France

Re: PiFBA released - Final Burn Alpha arcade emulator

Fri Feb 27, 2015 11:52 pm

Hi,
I've encountered issues with my fbacapex even if i try to recompile with the makefile given in sources.
So i've decided to make a bash script to handle the menus and rom launch of the various emulators i want to host on my rpi B.
I know other solution exist but i wanted to levelup my self-learning programming skills.
And here am i : https://github.com/JustaLiriK/rpi-arcad ... r/emulmenu
There is a gui.cfg there mandatory to get it working. Tweak it with your settings and please give me feedbacks
and advices.
See y'all !!
Codez comme Da Vincy

NeogeoPi
Posts: 1
Joined: Thu Mar 05, 2015 3:21 pm

Re: PiFBA released - Final Burn Alpha arcade emulator

Thu Mar 05, 2015 3:26 pm

welshy wrote:KitchUK
'I have a really weird problem with a couple of Neo Geo games. For example Art of fighting 3 and Metal Slug 3.'
Hard to say, could be FBA itself or due to issues noted below of the original Hardware (or if your outputting Analogue sound as opposed to HDMI). I do know Cave's 'Danmaku' DoDonPachi doesn't seem to display any slowdown at 900Mhz which surprised/impressed me as the original PGM Hardware is much more powerful than SNK's MVS. Perhaps you could try lowering your GPU allocation to 64MEG, see if that helps.

Vanfanel
'The same happens here with Metal Slug 2, but not with Metal Slug X....strange indeed!'
The original MVS Metal Slug 2 suffered horrendous slowdown (to which Arcade Owners and their patrons complained) so was rewritten as Metal Slug X to address the issue by rearranging elements during the levels to prevent bottle necks.
I have tried all the different overclocking + ram split methods with Art of fighting 3, I also made a cache file for it but no matter what it still has cracks in the sound so I guess this is not a juice issue but a inaccurate emulation issue with pifba itself. I am on a Pi1 so someone on a Pi2 can feel free to try Art of fighting 3 and see if it behaves the same cause then it's definitely a emulation issue and not a juice issue.

If these titles could be fixed then it would be a near perfect neogeo substitute.

RetroFredde
Posts: 11
Joined: Thu Feb 20, 2014 9:16 pm

Re: PiFBA released - Final Burn Alpha arcade emulator

Mon Mar 09, 2015 5:39 am

I'm trying to migrate some games from mame4all to pifba but some neogeo games are missing graphics right now, like in Blazing Star I neither see the ship or background, just the weapon power bar and some texts. Metal Slug shows similar result, can't even see the title screen. But Metal Slug 2 is fine. Is it possible to rule out if it's a problem with the neogeo bios, the game files, the emulator or something else?
Running on Pi2 btw if that helps.

Solved: Apparently a bad rom, tried with another one and everything is correct now. :)

User avatar
Trixster
Posts: 261
Joined: Sat Jul 07, 2012 3:53 pm

Re: PiFBA released - Final Burn Alpha arcade emulator

Sun Mar 15, 2015 7:55 pm

For people struggling to get mslug3 running and no sound in 4 or 5, read on:

Mslug3 - rename the zip file to mslug3n.zip. Google "neo geo bios" and download the 1.5MB file linked. Move all the files in this zip into the mslug3n.zip file. Copy the file into your roms directory. It should now work.

Mslug4 - Google "metal slug 4 (Decrypted C)". Click the link, download the file. Copy the contents of this zip into your mslug4.zip and then put this back into your roms directory. It should now work.

Mslug5 - same procedure as 4 but Google for "metal slug 5 (Decrypted C).

User avatar
Trixster
Posts: 261
Joined: Sat Jul 07, 2012 3:53 pm

Re: PiFBA released - Final Burn Alpha arcade emulator

Sun Mar 15, 2015 8:34 pm

You can also enter the unibios menu by holding A B C and Start. This enables access to cheats and dip switches.

decdev15
Posts: 2
Joined: Wed Jun 03, 2015 1:00 pm

Re: PiFBA released - Final Burn Alpha arcade emulator

Wed Jun 03, 2015 1:13 pm

Hi guys,

Thanks for all your help so far in getting my retropie set up. I've got my games and controls working for the snes, megadrive, and n64, but I'm having problems with fba for the neo geo.

The games run perfectly in fba, so I believe my bios file is the correct one. The keyboard works for controls. However, my two wireless xbox 360 controllers won't work with it, apart from two of the buttons (two from a, b, x, y) controlling up and left. The d-pad and analog sticks don't do anything.

I've tried configuring the "fba2x.cfg" file in conjunction with jstest, but no luck. Any advice please?

dankcushions
Posts: 23
Joined: Sat Jun 13, 2015 10:40 am

Re: PiFBA released - Final Burn Alpha arcade emulator

Sat Jun 13, 2015 10:45 am

in the latest version of PiFBA on sourceforge, it says:
March 2013:

DPAD/HAT support fixed.
Added 4 player joystick support.
Screen rotation option for vertical games.
(i think it's supposed to be march 2014 but yeah)

how do i get 4 player mode to work? i manually edited fba2x.cfg to add a third joystick configuration (A_3=0, etc), but that doesn't seem to have worked. is there something else i need to do?

Zogzog
Posts: 2
Joined: Mon Sep 14, 2015 11:38 am

Re: PiFBA released - Final Burn Alpha arcade emulator

Mon Sep 14, 2015 11:42 am

Hi everyone,

For your information, I managed to run Metal Slug 1, X, 3, 4, 5 properly on Raspberry PI 2 powered by Retropie. Sound is working properly and action is smooth (at least level 1 for each games, I haven't played more so far). I can share BIOS and other stuff if required. I spent almost 2 hours to make it work, I guess I can help people saving time ;)

Now i'd like to understand how to bind key in order to save / load games and to access service mode. I've read default combination should be something like L + R + SELECT but I'd like to know how I can bind differents key for such action. I'm using fba2x.cfg and retroarch.cfg for other emulators.

Thank you so much !

Zogzog
Posts: 2
Joined: Mon Sep 14, 2015 11:38 am

Re: PiFBA released - Final Burn Alpha arcade emulator

Wed Oct 14, 2015 12:53 pm

Ok I made it by upgrading Retropie to 3.2 which is using fba Next by default. This emulator is much better and I'm now able to reach toggle menu, set Unibios available and change geographic zone on rom boot.

All metal slug are now working properly with people full of red blood :-D

nagelw
Posts: 1
Joined: Tue Nov 24, 2015 12:49 pm

Re: PiFBA released - Final Burn Alpha arcade emulator

Tue Nov 24, 2015 12:56 pm

Hi pudding.

Would you mind just briefly explaining how to get this working ie do I have to install retropie and add this version of piFBA?

Return to “Gaming”