Build Your Own Arcade Controls Forum
Main => Software Forum => Topic started by: maraxle on February 14, 2004, 09:27:47 am
-
Does anyone know which files I would have to change in order to build a version of MAME/AdvanceMAME with support for fewer games? Specifically, I would like to go through my roms collection and only support the ones I have. That way I could strip out the drivers for stuff I will never play, and build a smaller executable.
-
You want to build a Tiny Mame then. That file is SRC\Tiny.mak
Beware Tiny Comiles are a pain to do but they can be fun. It's just soritng the dependencies is a problem. After you've waded through the CPUS, SOUNDS, Driver and OBJ files to compile a win32 version type from the src dir
make TARGET=tiny
Brad
Theres so many questions to doing a tiny compile though
-
not worth the time. No speed gain for doing it too.
I'm sure you have 20MB of space the EXE file.
-
not worth the time. No speed gain for doing it too.
I'm sure you have 20MB of space the EXE file.
Actually, I will get a speed gain. I am running FreeDOS, so my bottleneck is disk I/O. Therefore, smaller executable = quicker load time. I have actually tested that theory by UPX packing the executable, which in theory should make it take longer to load as it has to be unpacked in memory, but due to the slow disk I/O (but fast RAM access) in FreeDOS, has the opposite effect.
-
An example of a "Classics" tiny.mak file:
-----------------------------
### The previous 95 games, minus a few drivers, minus ladybug, popeye, punchout
# a tiny compile is without Neogeo games
COREDEFS += -DTINY_COMPILE=1
COREDEFS += -DTINY_NAME=" driver_1942, driver_amidars,
driver_archrivl, driver_arkanoid, driver_armora,
driver_asteroid, driver_atarifb, driver_barrier, driver_berzerk,
driver_blaster, driver_blstroid, driver_boothill, driver_bosco,
driver_boxingb, driver_bubbles, driver_bwidow, driver_bzone,
driver_ccastles, driver_centiped, driver_cloak, driver_crater,
driver_crush, driver_defender, driver_demoderb,
driver_demon, driver_digdug, driver_digdug2, driver_dkong,
driver_dkongjr, driver_domino, driver_dotron, driver_fantasy,
driver_foodf, driver_frenzy, driver_frogger, driver_galaga,
driver_galaxian, driver_gravitar, driver_gyruss,
driver_invaders, driver_invadpt2, driver_journey, driver_joust,
driver_kick, driver_klax, driver_lrescue, driver_mappy,
driver_mario, driver_maxrpm, driver_mhavoc,
driver_mhavocrv, driver_missile, driver_mooncrst,
driver_mrdo, driver_mspacman, driver_mspacpls,
driver_nibbler, driver_omegrace, driver_pacman,
driver_pballoon, driver_phoenix, driver_piranha,
driver_pleiads, driver_powerdrv, driver_quantum,
driver_rampage, driver_rbtapper, driver_redbaron,
driver_ripoff, driver_robotron, driver_sarge, driver_scobra,
driver_scramble, driver_shollow, driver_sinista1,
driver_sinistar, driver_snowbros, driver_solarq,
driver_spacduel, driver_spacewar, driver_spectar,
driver_speedfrk, driver_splat, driver_spyhunt, driver_ssi,
driver_starcas, driver_stargate, driver_starhawk,
driver_starwars, driver_sundance, driver_tailg, driver_tapper,
driver_targ, driver_tempest, driver_temptube, driver_theend,
driver_timber, driver_timeplt, driver_toobin, driver_tron,
driver_tutankhm, driver_twotiger, driver_vanguard,
driver_vulgus, driver_wacko, driver_warrior, driver_wotw,
driver_xenophob, driver_yiear, driver_zerozone"
COREDEFS += -DTINY_POINTER="&driver_1942,&driver_amidars,&driver_archrivl,
&driver_arkanoid,&driver_armora,&driver_asteroid,&driver_atarifb,
&driver_barrier,&driver_berzerk,&driver_blaster,&driver_blstroid,
&driver_boothill,&driver_bosco,&driver_boxingb,&driver_bubbles,
&driver_bwidow,&driver_bzone,&driver_ccastles,&driver_centiped,
&driver_cloak,&driver_crater,&driver_crush,&driver_defender,
&driver_demoderb,&driver_demon,&driver_digdug,&driver_digdug2,
&driver_dkong,&driver_dkongjr,&driver_domino,&driver_dotron,
&driver_fantasy,&driver_foodf,&driver_frenzy,&driver_frogger,
&driver_galaga,&driver_galaxian,&driver_gravitar,&driver_gyruss,
&driver_invaders,&driver_invadpt2,&driver_journey,&driver_joust,
&driver_kick,&driver_klax,&driver_lrescue,&driver_mappy,
&driver_mario,&driver_maxrpm,&driver_mhavoc,&driver_mhavocrv,
&driver_missile,&driver_mooncrst,&driver_mrdo,&driver_mspacman,
&driver_mspacpls,&driver_nibbler,&driver_omegrace,&driver_pacman,
&driver_pballoon,&driver_phoenix,&driver_piranha,&driver_pleiads,
&driver_powerdrv,&driver_quantum,&driver_rampage,&driver_rbtapper,
&driver_redbaron,&driver_ripoff,&driver_robotron,&driver_sarge,
&driver_scobra,&driver_scramble,&driver_shollow,&driver_sinista1,
&driver_sinistar,&driver_snowbros,&driver_solarq,&driver_spacduel,
&driver_spacewar,&driver_spectar,&driver_speedfrk,&driver_splat,
&driver_spyhunt,&driver_ssi,&driver_starcas,&driver_stargate,
&driver_starhawk,&driver_starwars,&driver_sundance,&driver_tailg,
&driver_tapper,&driver_targ,&driver_tempest,&driver_temptube,
&driver_theend,&driver_timber,&driver_timeplt,&driver_toobin,
&driver_tron,&driver_tutankhm,&driver_twotiger,&driver_vanguard,
&driver_vulgus,&driver_wacko,&driver_warrior,&driver_wotw,
&driver_xenophob,&driver_yiear,&driver_zerozone"
# uses these CPUs
CPUS+=Z80@
CPUS+=8080@
CPUS+=8085A@
CPUS+=M6502@
CPUS+=N2A03@
CPUS+=I8035@
CPUS+=I8039@
CPUS+=M6800@
CPUS+=M6802@
CPUS+=M6808@
CPUS+=M68705@
CPUS+=M6809@
CPUS+=M68000@
CPUS+=M68010@
CPUS+=S2650@
CPUS+=CCPU@
CPUS+=G65816@
CPUS+=SPC700@
# uses these SOUNDs
SOUNDS+=CUSTOM@
SOUNDS+=SAMPLES@
SOUNDS+=DAC@
SOUNDS+=DISCRETE@
SOUNDS+=AY8910@
SOUNDS+=YM2203@
SOUNDS+=YM2151_ALT@
SOUNDS+=YM2610@
SOUNDS+=YM2610B@
SOUNDS+=YM3812@
SOUNDS+=SN76477@
SOUNDS+=SN76496@
SOUNDS+=POKEY@
SOUNDS+=NES@
SOUNDS+=NAMCO@
SOUNDS+=TMS36XX@
SOUNDS+=TMS5110@
SOUNDS+=TMS5220@
SOUNDS+=VLM5030@
SOUNDS+=ADPCM@
SOUNDS+=OKIM6295@
SOUNDS+=HC55516@
SOUNDS+=CEM3394@
SOUNDS+=QSOUND@
SOUNDS+=SP0250@
OBJS = $(OBJ)/drivers/pacman.o $(OBJ)/machine/mspacman.o \
$(OBJ)/machine/pacplus.o $(OBJ)/machine/jumpshot.o \
$(OBJ)/machine/theglobp.o \
$(OBJ)/machine/acitya.o \
$(OBJ)/vidhrdw/pengo.o $(OBJ)/drivers/pengo.o \
$(OBJ)/drivers/epos.o $(OBJ)/vidhrdw/epos.o \
$(OBJ)/vidhrdw/cclimber.o $(OBJ)/sndhrdw/cclimber.o $(OBJ)/drivers/cclimber.o \
$(OBJ)/vidhrdw/phoenix.o $(OBJ)/sndhrdw/phoenix.o $(OBJ)/drivers/phoenix.o \
$(OBJ)/sndhrdw/pleiads.o \
$(OBJ)/vidhrdw/galaxian.o $(OBJ)/sndhrdw/galaxian.o $(OBJ)/drivers/galaxian.o \
$(OBJ)/machine/bosco.o $(OBJ)/sndhrdw/bosco.o $(OBJ)/vidhrdw/bosco.o $(OBJ)/drivers/bosco.o \
$(OBJ)/machine/galaga.o $(OBJ)/vidhrdw/galaga.o $(OBJ)/drivers/galaga.o \
$(OBJ)/machine/digdug.o $(OBJ)/vidhrdw/digdug.o $(OBJ)/drivers/digdug.o \
$(OBJ)/machine/mappy.o $(OBJ)/vidhrdw/mappy.o $(OBJ)/drivers/mappy.o \
$(OBJ)/vidhrdw/ladybug.o $(OBJ)/drivers/ladybug.o \
$(OBJ)/vidhrdw/mrdo.o $(OBJ)/drivers/mrdo.o \
$(OBJ)/vidhrdw/dkong.o $(OBJ)/sndhrdw/dkong.o $(OBJ)/drivers/dkong.o \
$(OBJ)/machine/strtheat.o \
$(OBJ)/vidhrdw/mario.o $(OBJ)/sndhrdw/mario.o $(OBJ)/drivers/mario.o \
$(OBJ)/machine/snes.o $(OBJ)/vidhrdw/snes.o \
$(OBJ)/sndhrdw/snes.o $(OBJ)/drivers/nss.o \
$(OBJ)/machine/8080bw.o \
$(OBJ)/vidhrdw/8080bw.o $(OBJ)/sndhrdw/8080bw.o $(OBJ)/drivers/8080bw.o \
$(OBJ)/vidhrdw/m79amb.o $(OBJ)/drivers/m79amb.o $(OBJ)/drivers/rotaryf.o \
$(OBJ)/drivers/cvs.o $(OBJ)/vidhrdw/cvs.o $(OBJ)/vidhrdw/s2636.o \
$(OBJ)/machine/mcr.o $(OBJ)/sndhrdw/mcr.o \
$(OBJ)/vidhrdw/mcr12.o $(OBJ)/vidhrdw/mcr3.o \
$(OBJ)/drivers/mcr1.o $(OBJ)/drivers/mcr2.o $(OBJ)/drivers/mcr3.o \
$(OBJ)/vidhrdw/mcr68.o $(OBJ)/drivers/mcr68.o \
$(OBJ)/vidhrdw/balsente.o $(OBJ)/machine/balsente.o $(OBJ)/drivers/balsente.o \
$(OBJ)/machine/arkanoid.o $(OBJ)/vidhrdw/arkanoid.o $(OBJ)/drivers/arkanoid.o \
$(OBJ)/vidhrdw/taitoic.o $(OBJ)/sndhrdw/taitosnd.o \
$(OBJ)/vidhrdw/taito_x.o $(OBJ)/drivers/taito_x.o $(OBJ)/machine/cchip.o \
$(OBJ)/vidhrdw/taito_f2.o $(OBJ)/drivers/taito_f2.o \
$(OBJ)/vidhrdw/snowbros.o $(OBJ)/drivers/snowbros.o \
$(OBJ)/machine/williams.o $(OBJ)/vidhrdw/williams.o $(OBJ)/sndhrdw/williams.o $(OBJ)/drivers/williams.o \
$(OBJ)/vidhrdw/vulgus.o $(OBJ)/drivers/vulgus.o \
$(OBJ)/vidhrdw/1942.o $(OBJ)/drivers/1942.o \
$(OBJ)/vidhrdw/1943.o $(OBJ)/drivers/1943.o \
$(OBJ)/machine/kabuki.o \
$(OBJ)/vidhrdw/cps1.o $(OBJ)/drivers/cps1.o $(OBJ)/drivers/cps2.o \
$(OBJ)/machine/segacrpt.o $(OBJ)/sndhrdw/segasnd.o \
$(OBJ)/machine/btime.o $(OBJ)/vidhrdw/btime.o $(OBJ)/drivers/btime.o \
$(OBJ)/machine/scramble.o $(OBJ)/sndhrdw/scramble.o $(OBJ)/drivers/scramble.o \
$(OBJ)/drivers/frogger.o \
$(OBJ)/drivers/scobra.o \
$(OBJ)/drivers/amidar.o \
$(OBJ)/sndhrdw/timeplt.o \
$(OBJ)/vidhrdw/tutankhm.o $(OBJ)/drivers/tutankhm.o \
$(OBJ)/vidhrdw/timeplt.o $(OBJ)/drivers/timeplt.o \
$(OBJ)/sndhrdw/gyruss.o $(OBJ)/vidhrdw/gyruss.o $(OBJ)/drivers/gyruss.o \
$(OBJ)/machine/konami.o $(OBJ)/vidhrdw/trackfld.o $(OBJ)/sndhrdw/trackfld.o $(OBJ)/drivers/trackfld.o \
$(OBJ)/vidhrdw/yiear.o $(OBJ)/drivers/yiear.o \
$(OBJ)/vidhrdw/konamiic.o \
$(OBJ)/vidhrdw/exidy.o $(OBJ)/sndhrdw/exidy.o $(OBJ)/drivers/exidy.o \
$(OBJ)/sndhrdw/targ.o \
$(OBJ)/vidhrdw/circus.o $(OBJ)/drivers/circus.o \
$(OBJ)/vidhrdw/victory.o $(OBJ)/drivers/victory.o \
$(OBJ)/machine/atari_vg.o \
$(OBJ)/machine/asteroid.o $(OBJ)/sndhrdw/asteroid.o \
$(OBJ)/sndhrdw/llander.o $(OBJ)/drivers/asteroid.o \
$(OBJ)/drivers/bwidow.o \
$(OBJ)/sndhrdw/bzone.o $(OBJ)/drivers/bzone.o \
$(OBJ)/sndhrdw/redbaron.o \
$(OBJ)/drivers/tempest.o \
$(OBJ)/machine/starwars.o \
$(OBJ)/drivers/starwars.o $(OBJ)/sndhrdw/starwars.o \
$(OBJ)/machine/mhavoc.o $(OBJ)/drivers/mhavoc.o \
$(OBJ)/drivers/quantum.o \
$(OBJ)/machine/atarifb.o $(OBJ)/vidhrdw/atarifb.o $(OBJ)/drivers/atarifb.o \
$(OBJ)/vidhrdw/centiped.o $(OBJ)/drivers/centiped.o \
$(OBJ)/machine/missile.o $(OBJ)/vidhrdw/missile.o $(OBJ)/drivers/missile.o \
$(OBJ)/vidhrdw/foodf.o $(OBJ)/drivers/foodf.o \
$(OBJ)/vidhrdw/ccastles.o $(OBJ)/drivers/ccastles.o \
$(OBJ)/vidhrdw/cloak.o $(OBJ)/drivers/cloak.o \
$(OBJ)/machine/atarigen.o $(OBJ)/sndhrdw/atarijsa.o \
$(OBJ)/vidhrdw/atarimo.o $(OBJ)/vidhrdw/atarirle.o \
$(OBJ)/machine/slapstic.o \
$(OBJ)/vidhrdw/atarisy1.o $(OBJ)/drivers/atarisy1.o \
$(OBJ)/vidhrdw/gauntlet.o $(OBJ)/drivers/gauntlet.o \
$(OBJ)/vidhrdw/toobin.o $(OBJ)/drivers/toobin.o \
$(OBJ)/vidhrdw/vindictr.o $(OBJ)/drivers/vindictr.o \
$(OBJ)/vidhrdw/klax.o $(OBJ)/drivers/klax.o \
$(OBJ)/vidhrdw/blstroid.o $(OBJ)/drivers/blstroid.o \
$(OBJ)/vidhrdw/eprom.o $(OBJ)/drivers/eprom.o \
$(OBJ)/vidhrdw/thunderj.o $(OBJ)/drivers/thunderj.o \
$(OBJ)/vidhrdw/rockola.o $(OBJ)/sndhrdw/rockola.o $(OBJ)/drivers/rockola.o \
$(OBJ)/machine/berzerk.o $(OBJ)/vidhrdw/berzerk.o $(OBJ)/sndhrdw/berzerk.o $(OBJ)/drivers/berzerk.o \
$(OBJ)/sndhrdw/cinemat.o $(OBJ)/drivers/cinemat.o \
$(OBJ)/machine/bagman.o $(OBJ)/vidhrdw/bagman.o $(OBJ)/drivers/bagman.o \
$(OBJ)/vidhrdw/zerozone.o $(OBJ)/drivers/zerozone.o \
$(OBJ)/vidhrdw/crtc6845.o \
$(OBJ)/drivers/omegrace.o \
# MAME specific core objs
COREOBJS += $(OBJ)/driver.o $(OBJ)/cheat.o
# generated text files
TEXTS += gamelist.txt
gamelist.txt: $(EMULATOR)
@echo Generating $@...
@$(CURPATH)$(EMULATOR) -gamelist -noclones -sortname > docs/Retrocadelist.txt
------------------------------
Brad
-
Cool. Thanks, Brad!
-
No problem, just consider that there should be no line breaks between each driver and &driver name. I strecthed the board horizontally to hell and gone and had to add them in to stop it.
Need any help or pointers, gimme a yell.
Brad
-
Does anyone know which files I would have to change in order to build a version of MAME/AdvanceMAME with support for fewer games? Specifically, I would like to go through my roms collection and only support the ones I have. That way I could strip out the drivers for stuff I will never play, and build a smaller executable.
What Brad said.
If you're really ambitious you can move some of the object files from core.mak into mame.mak that you won't need, such as chd.o. If you do this you'll have to do some #ifdefing as well. That'll make your code a bit smaller, too.
By the way, have you done a successful compile under FreeDOS? I thought it couldn't be done due to long file name restrictions. Also, what sound card are you using?
Brad, thanks for the sample, that helps me out.
Regards,
Buddabing
-
I think this is the command you can use to output all the game drivers you need for compiling? Its usefully to help figure out things when you're making a tiny compile.
mame -listdetails > listdetails.txt
Thinks you can put it like this?
mame dkong > listdetails.txt
Haven't done it in a while, so if I've made a mistake, please feel free to comment?
Ah ha! Here's the link I was looking for!
http://www.ionpool.net/arcade/mame/tiny_compile.html (http://www.ionpool.net/arcade/mame/tiny_compile.html)