Author Topic: FB Alpha Drivers  (Read 8749 times)

Offline LittleKaneda

  • Jr. Member
  • **
  • Posts: 55
  • Karma: +1/-0
FB Alpha Drivers
« on: February 26, 2008, 02:58:03 AM »
Hi I'm curious about the drivers that are uploaded on the various sites (barryharris, neosource). How would one add these drivers to his or her FB Alpha? I figured I could just wait until an official release for the support, or actually get into adding the new things I see uploaded before one...and I'd like to choose the latter!

Any help, much appreciated

Offline iq_132

  • Administrator
  • *****
  • Posts: 3724
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: FB Alpha Drivers
« Reply #1 on: February 26, 2008, 03:42:28 AM »
Well, the first thing you need to do is grab the source:

http://neo-source.com/index.php?topic=884.0

Unzip it to c:\FBA_SRC\ (or whatever, that's just what I use)

Next, you'll need to set up a compile environment (MinGW)

Grab the development utilities at the bottom of cap's dl page
http://fightercore.freepgs.com/fbaex/?page_id=8

Unzip it to c:\MinGW\


This next part's a bit difficult, so if you have any problems, they will probably be here:

Quote
go to "My Computer" and then "Properties"
You should get to the "System" window (similar to what's shown in the screenshot that's attached.)

Select the 'Advanced' sheet (on Windows 2000, called 'Environment' on NT).
Click on 'Environment Variables...'.
Click on 'New...' (under the 'System variables' section).
Specify a variable name of 'MINGDIR' and value of 'c:\mingw' (change the 'c:' as appropriate, if you are using a different disk!).

Click on 'New...' (under the 'System variables' section).
Specify a variable name of 'UNIX_TOOLS' and value of '1'.

Select 'Path' (under the 'System variables' section).
Click 'Edit...'.
Add ';c:\mingw\bin' at the end of the value line and press 'OK'.


Now that you've done that, open up a command prompt (dos window, if you prefer)
and navigate to c:\fba_src

cd\
cd c:\FBA_SRC

and then type MAKE

Go ahead and post when/if you get this far about any questions / problems.  Once we've got you here, we can
talk about how to add drivers. :)


Offline LittleKaneda

  • Jr. Member
  • **
  • Posts: 55
  • Karma: +1/-0
Re: FB Alpha Drivers
« Reply #2 on: February 26, 2008, 04:45:15 AM »
Quote from: cmd
Making normal build...

Generating depend file for src/burner/win32/main.cpp...
and: setinputfile Can't open and
Cannot fork
MAKE[1]: *** [main.d] Error 2
MAKE: *** [mingw] Error 2

 :eek:
« Last Edit: February 26, 2008, 04:49:10 AM by LittleKaneda »

Offline iq_132

  • Administrator
  • *****
  • Posts: 3724
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: FB Alpha Drivers
« Reply #3 on: February 26, 2008, 05:15:36 AM »
:eek:

You wouldn't happen to be using Vista, would you?


Offline LittleKaneda

  • Jr. Member
  • **
  • Posts: 55
  • Karma: +1/-0
Re: FB Alpha Drivers
« Reply #4 on: February 26, 2008, 05:27:21 AM »
You wouldn't happen to be using Vista, would you?

Windows XP Home; I got it! I changed the path names exactly to what you have them as, and it worked.

(I got a more interesting error this time) (after successfully compiling loads of cpp's)

Quote
Compiling src/burn/misc/d_parent.cpp...
process_begin: CreateProcess((null), perl -w C:\FBA_SRC\src\scripts\gamelist.pl
-o src/generated/driverlist.h -l gamelist.txt src/burn/cave/d_dodonpachi.cpp src
/burn/cave/d_donpachi.cpp src/burn/cave/d_esprade.cpp src/burn/cave/d_feversos.c
pp src/burn/cave/d_gaia.cpp src/burn/cave/d_guwange.cpp src/burn/cave/d_sailormn
.cpp src/burn/cave/d_uopoko.cpp src/burn/capcom/dc_1941.cpp src/burn/capcom/dc_3
wonders.cpp src/burn/capcom/dc_captcomm.cpp src/burn/capcom/dc_cawing.cpp src/bu
rn/capcom/dc_dino.cpp src/burn/capcom/dc_dw.cpp src/burn/capcom/dc_ffight.cpp sr
c/burn/capcom/dc_forgottn.cpp src/burn/capcom/dc_ghouls.cpp src/burn/capcom/dc_k
nights.cpp src/burn/capcom/dc_kod.cpp src/burn/capcom/dc_megaman.cpp src/burn/ca
pcom/dc_mercs.cpp src/burn/capcom/dc_msword.cpp src/burn/capcom/dc_mtwins.cpp sr
c/burn/capcom/dc_nemo.cpp src/burn/capcom/dc_pang3.cpp src/burn/capcom/dc_pnickj
.cpp src/burn/capcom/dc_punisher.cpp src/burn/capcom/dc_qad.cpp src/burn/capcom/
dc_qtono2.cpp src/burn/capcom/dc_sf2.cpp src/burn/capcom/dc_sf2t.cpp src/burn/ca
pcom/dc_sfzch.cpp src/burn/capcom/dc_slammast.cpp src/burn/capcom/dc_strider.cpp
 src/burn/capcom/dc_unsquad.cpp src/burn/capcom/dc_varth.cpp src/burn/capcom/dc_
willow.cpp src/burn/capcom/dc_wof.cpp src/burn/capcom/dc_1944.cpp src/burn/capco
m/dc_19xx.cpp src/burn/capcom/dc_armwar.cpp src/burn/capcom/dc_avsp.cpp src/burn
/capcom/dc_batcir.cpp src/burn/capcom/dc_choko.cpp src/burn/capcom/dc_csclub.cpp
 src/burn/capcom/dc_cworld2j.cpp src/burn/capcom/dc_cyb.cpp src/burn/capcom/dc_d
dsom.cpp src/burn/capcom/dc_ddtod.cpp src/burn/capcom/dc_dimahoo.cpp src/burn/ca
pcom/dc_dstlk.cpp src/burn/capcom/dc_ecofghtr.cpp src/burn/capcom/dc_gigawing.cp
p src/burn/capcom/dc_hsf2.cpp src/burn/capcom/dc_jyangoku.cpp src/burn/capcom/dc
_megaman2.cpp src/burn/capcom/dc_mmancp2u.cpp src/burn/capcom/dc_mmatrix.cpp src
/burn/capcom/dc_mpang.cpp src/burn/capcom/dc_msh.cpp src/burn/capcom/dc_mshvsf.c
pp src/burn/capcom/dc_mvsc.cpp src/burn/capcom/dc_nwarr.cpp src/burn/capcom/dc_p
rogear.cpp src/burn/capcom/dc_pzloop2.cpp src/burn/capcom/dc_qnd.cpp src/burn/ca
pcom/dc_ringdest.cpp src/burn/capcom/dc_sfa.cpp src/burn/capcom/dc_sfa2.cpp src/
burn/capcom/dc_sfa3.cpp src/burn/capcom/dc_sgemf.cpp src/burn/capcom/dc_spf.cpp
src/burn/capcom/dc_ssf2.cpp src/burn/capcom/dc_ssf2t.cpp src/burn/capcom/dc_vhun
t2.cpp src/burn/capcom/dc_vsav.cpp src/burn/capcom/dc_vsav2.cpp src/burn/capcom/
dc_xmcota.cpp src/burn/capcom/dc_xmvsf.cpp src/burn/cps3/d_cps3.cpp src/burn/neo
geo/d_neogeo.cpp src/burn/pgm/d_pgm.cpp src/burn/sega/d_hangon.cpp src/burn/sega
/d_outrun.cpp src/burn/sega/d_sys16a.cpp src/burn/sega/d_sys16b.cpp src/burn/seg
a/d_sys18.cpp src/burn/sega/d_xbrd.cpp src/burn/sega/d_ybrd.cpp src/burn/toaplan
/d_batrider.cpp src/burn/toaplan/d_batsugun.cpp src/burn/toaplan/d_battleg.cpp s
rc/burn/toaplan/d_bbakraid.cpp src/burn/toaplan/d_dogyuun.cpp src/burn/toaplan/d
_hellfire.cpp src/burn/toaplan/d_kbash.cpp src/burn/toaplan/d_mahoudai.cpp src/b
urn/toaplan/d_outzone.cpp src/burn/toaplan/d_shippumd.cpp src/burn/toaplan/d_sno
wbro2.cpp src/burn/toaplan/d_tekipaki.cpp src/burn/toaplan/d_truxton.cpp src/bur
n/toaplan/d_truxton2.cpp src/burn/toaplan/d_vfive.cpp src/burn/toaplan/d_zerowin
g.cpp src/burn/misc/psikyo/d_psikyo.cpp src/burn/misc/dec0/d_baddudes.cpp src/bu
rn/misc/dec0/d_robocop.cpp src/burn/misc/taito_68k/d_opwolf.cpp src/burn/misc/ta
ito_68k/d_rainbow.cpp src/burn/misc/taito_68k/d_rastan.cpp src/burn/misc/taito_6
8k/d_superman.cpp src/burn/misc/taito_68k/d_twinhawk.cpp src/burn/misc/pre90s/d_
4enraya.cpp src/burn/misc/pre90s/d_1942.cpp src/burn/misc/pre90s/d_1943.cpp src/
burn/misc/pre90s/d_ambush.cpp src/burn/misc/pre90s/d_arkanoid.cpp src/burn/misc/
pre90s/d_bombjack.cpp src/burn/misc/pre90s/d_dotrikun.cpp src/burn/misc/pre90s/d
_epos.cpp src/burn/misc/pre90s/d_jack.cpp src/burn/misc/pre90s/d_madgear.cpp src
/burn/misc/pre90s/d_meijinsn.cpp src/burn/misc/pre90s/d_minivdr.cpp src/burn/mis
c/pre90s/d_mole.cpp src/burn/misc/pre90s/d_mrflea.cpp src/burn/misc/pre90s/d_pac
man.cpp src/burn/misc/pre90s/d_pkunwar.cpp src/burn/misc/pre90s/d_prehisle.cpp s
rc/burn/misc/pre90s/d_quizo.cpp src/burn/misc/pre90s/d_route16.cpp src/burn/misc
/pre90s/d_solomon.cpp src/burn/misc/pre90s/d_sys1.cpp src/burn/misc/pre90s/d_tig
erheli.cpp src/burn/misc/pre90s/d_tmnt.cpp src/burn/misc/pre90s/d_wallc.cpp src/
burn/misc/pre90s/d_wc90.cpp src/burn/misc/post90s/d_1945kiii.cpp src/burn/misc/p
ost90s/d_aerofgt.cpp src/burn/misc/post90s/d_biomtoy.cpp src/burn/misc/post90s/d
_fstarfrc.cpp src/burn/misc/post90s/d_galpanic.cpp src/burn/misc/post90s/d_hyper
pac.cpp src/burn/misc/post90s/d_kaneko16.cpp src/burn/misc/post90s/d_m92.cpp src
/burn/misc/post90s/d_news.cpp src/burn/misc/post90s/d_ohmygod.cpp src/burn/misc/
post90s/d_powerins.cpp src/burn/misc/post90s/d_seta2.cpp src/burn/misc/post90s/d
_shadfrce.cpp src/burn/misc/d_parent.cpp, ...) failed.
make (e=2): The system cannot find the file specified.
MAKE[1]: *** [src/generated/driverlist.h] Error 2
MAKE: *** [mingw] Error 2

C:\FBA_SRC>
« Last Edit: February 26, 2008, 05:32:04 AM by LittleKaneda »

Offline iq_132

  • Administrator
  • *****
  • Posts: 3724
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: FB Alpha Drivers
« Reply #5 on: February 26, 2008, 05:44:25 AM »
Ah, that's a problem with perl

Extract this into your MinGW directory


Offline LittleKaneda

  • Jr. Member
  • **
  • Posts: 55
  • Karma: +1/-0
Re: FB Alpha Drivers
« Reply #6 on: February 26, 2008, 05:54:06 AM »
Ah, that's a problem with perl

Extract this into your MinGW directory

Ok it's all finished proper  :biggrin:

Offline iq_132

  • Administrator
  • *****
  • Posts: 3724
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: FB Alpha Drivers
« Reply #7 on: February 26, 2008, 05:55:25 AM »
Excellent :)  The next step after it all compiles is to actually get the drivers into the source.

We can use THIS as an example.

First, put the d_mystston.cpp file into src/burn/misc/pre90s/    (the game was made in '84)

Next, open makefile.mingw with notepad (or a similar text editor)

Find this line:

      d_wc90.o \

Change it to this:

      d_wc90.o d_mystston.o \

You'll notice that what I've added there is the same as the name of the file you added earlier, but with .o instead of .cpp


Lastly, there's that m6502 change I said to make (otherwise the savestate for this game crashes)

Open src\cpu\m6502\m6502.cpp

Find the old m6502Scan function (which is at the bottom of the file)
Code: [Select]
int m6502Scan(int nAction)
{
if ((nAction & ACB_DRIVER_DATA) == 0) {
return 0;
}

struct BurnArea ba;

ba.Data   = m6502_active_cpu_regs;
ba.nLen   = sizeof(m6502_cpu) * MAX_CPU;
ba.szName = "Registers";
BurnAcb(&ba);

return 0;
}


and replace it with the new code.
Code: [Select]
int m6502Scan(int nAction)
{
if ((nAction & ACB_DRIVER_DATA) == 0) {
return 0;
}

for (int i = 0; i < MAX_CPU; i++) {
m6502_regs = &m6502_active_cpu_regs[i];

SCAN_VAR(A);
SCAN_VAR(X);
SCAN_VAR(Y);
SCAN_VAR(P);
SCAN_VAR(S);
SCAN_VAR(PC);
SCAN_VAR(nTotalCycles);
}

return 0;
}



Compile, and you're done. :)



Offline LittleKaneda

  • Jr. Member
  • **
  • Posts: 55
  • Karma: +1/-0
Re: FB Alpha Drivers
« Reply #8 on: February 26, 2008, 06:20:55 AM »
Compile, and you're done. :)

Two questions:
a.What do you mean by "Compile" ? (sorry)
b.I noticed a number of, but not too many games under "drvobj =" (where I added d_mystston.o) in the makefile.mingw; What is this list?

Offline iq_132

  • Administrator
  • *****
  • Posts: 3724
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: FB Alpha Drivers
« Reply #9 on: February 26, 2008, 06:25:37 AM »
Two questions:
a.What do you mean by "Compile" ? (sorry)
Really, everything after you type make and hit enter until an actual .exe is produced is compiling.

Quote
b.I noticed a number of, but not too many games under "drvobj =" (where I added d_mystston.o) in the makefile.mingw; What is this list?

That's a list of files.  Each of those d_INSERT_NAME_HERE.o files are driver files that contain the code for each game.  There can be *many* game drivers in each file.


Offline LittleKaneda

  • Jr. Member
  • **
  • Posts: 55
  • Karma: +1/-0
Re: FB Alpha Drivers
« Reply #10 on: February 26, 2008, 06:30:23 AM »
Thank you so much! That was very informative and quick of you so, much appreciated for sure.
I also hope this thread helps others who had no experience with this sort of thing like me.

Offline iq_132

  • Administrator
  • *****
  • Posts: 3724
  • Karma: +411/-0
  • Definitely not Dink!
    • NeoSource
Re: FB Alpha Drivers
« Reply #11 on: February 26, 2008, 06:42:03 AM »
Np at all. I'm more than happy to teach anyone who's willing to learn (and can follow directions).  :)