Welcome!

General Emulation => MAME => Topic started by: James33 on January 17, 2006, 04:47:16 AM

Title: Help on makeing a neomame build for v0.103
Post by: James33 on January 17, 2006, 04:47:16 AM
Ok I am bit stuck here ,
Can anyone tell me what is needed in the neomame.mak file  so it hooks everything up properly . Anything else needed ?
Title: Re: Help on makeing a neomame build for v0.103
Post by: neo04 on January 17, 2006, 05:36:45 AM
try these:
Code: [Select]
# CPUs
CPUS+=Z80@
CPUS+=M68000@

# SOUNDs
SOUNDS+=YM2610@
SOUNDS+=AY8910@

OBJS = \
$(OBJ)/machine/neogeo.o $(OBJ)/machine/pd4990a.o \
$(OBJ)/machine/neocrypt.o $(OBJ)/machine/neoprot.o $(OBJ)/machine/neoboot.o \
$(OBJ)/vidhrdw/neogeo.o $(OBJ)/drivers/neogeo.o \

# MAME specific core objs
COREOBJS += $(OBJ)/driver.o $(OBJ)/cheat.o
Title: Re: Help on makeing a neomame build for v0.103
Post by: James33 on January 17, 2006, 05:58:50 AM
Yeah I have it like that already but I get errors

Quote
Compiling src/sound/2610intf.c...
src/sound/2610intf.c: In function `ym2610b_get_info':
src/sound/2610intf.c:504: error: `ym2610b_start' undeclared (first use in this f
unction)
src/sound/2610intf.c:504: error: (Each undeclared identifier is reported only on
ce
src/sound/2610intf.c:504: error: for each function it appears in.)
make: *** [obj/neomameppp/sound/2610intf.o] Error 1



EDIT: I have it working now yay :)
Title: Re: Help on makeing a neomame build for v0.103
Post by: neo04 on January 17, 2006, 06:44:05 AM
ah..ok :) in 2610intf.c, go at the bottom & u will see:
Code: [Select]
/**************************************************************************
 * Generic get_info
 **************************************************************************/

static void ym2610b_set_info(void *token, UINT32 state, union sndinfo *info)
{
switch (state)
{
/* no parameters to set */
}
}


void ym2610b_get_info(void *token, UINT32 state, union sndinfo *info)
{
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */

/* --- the following bits of info are returned as pointers to data or functions --- */
case SNDINFO_PTR_SET_INFO: info->set_info = ym2610b_set_info; break;
case SNDINFO_PTR_START: info->start = ym2610b_start; break;
case SNDINFO_PTR_STOP: info->stop = ym2610_stop; break;
case SNDINFO_PTR_RESET: info->reset = ym2610_reset; break;

/* --- the following bits of info are returned as NULL-terminated strings --- */
case SNDINFO_STR_NAME: info->s = "YM2610B"; break;
case SNDINFO_STR_CORE_FAMILY: info->s = "Yamaha FM"; break;
case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright (c) 2004, The MAME Team"; break;
}
}
remove these lines or comment it out
Title: Re: Help on makeing a neomame build for v0.103
Post by: James33 on January 17, 2006, 06:46:22 AM
Yeah I just found that a momment ago :)

So I did this

Thanks neo :)

Code: [Select]
#ifndef NEOMAME
/**************************************************************************
 * Generic get_info
 **************************************************************************/

static void ym2610b_set_info(void *token, UINT32 state, union sndinfo *info)
{
switch (state)
{
/* no parameters to set */
}
}


void ym2610b_get_info(void *token, UINT32 state, union sndinfo *info)
{
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */

/* --- the following bits of info are returned as pointers to data or functions --- */
case SNDINFO_PTR_SET_INFO: info->set_info = ym2610b_set_info; break;
case SNDINFO_PTR_START: info->start = ym2610b_start; break;
case SNDINFO_PTR_STOP: info->stop = ym2610_stop; break;
case SNDINFO_PTR_RESET: info->reset = ym2610_reset; break;

/* --- the following bits of info are returned as NULL-terminated strings --- */
case SNDINFO_STR_NAME: info->s = "YM2610B"; break;
case SNDINFO_STR_CORE_FAMILY: info->s = "Yamaha FM"; break;
case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright (c) 2004, The MAME Team"; break;
}
}
#endif /* NEOMAME */
Title: Re: Help on makeing a neomame build for v0.103
Post by: neo04 on January 17, 2006, 07:38:02 AM
no prob man.. i wish mameplus will fix neopong bug
Title: Re: Help on makeing a neomame build for v0.103
Post by: mamesick on January 17, 2006, 10:04:19 AM
The AY8910 sound chip isn't used by NeoGeo hardware, so the following line could be removed safely:

SOUNDS+=AY8910@

I'm speaking of REAL NeoGeo hardware games. I don't know if some homebrew/hacks use this chip. With official MAME source it isn't needed at all.

And also, but this is simple a matter of different ways to made the same thing, instead of commenting out code in 2610intf.c , you can add this to the sound cores in your mak file:

SOUNDS+=YM2610B@

Title: Re: Help on makeing a neomame build for v0.103
Post by: James33 on January 17, 2006, 10:44:47 AM
Thanks for that info ,Nice to know :)
Title: Re: Help on makeing a neomame build for v0.103
Post by: neo04 on January 17, 2006, 10:48:55 AM
mamesick, how can i disable AY8910 without having problems in compiling?
Title: Re: Help on makeing a neomame build for v0.103
Post by: mamesick on January 17, 2006, 12:19:01 PM
mamesick, how can i disable AY8910 without having problems in compiling?

Well, I use this MAME.MAK when I want to compile a NeoGeo dedicated build:

Code: [Select]
# uncomment the following lines to include a CPU core
CPUS+=Z80@
CPUS+=M68000@

# uncomment the following lines to include a sound core
SOUNDS+=YM2610@
SOUNDS+=YM2610B@

DRVLIBS = \
$(OBJ)/neogeo.a \

$(OBJ)/neogeo.a: \
$(OBJ)/machine/neogeo.o $(OBJ)/machine/pd4990a.o \
$(OBJ)/machine/neocrypt.o $(OBJ)/machine/neoprot.o $(OBJ)/machine/neoboot.o \
$(OBJ)/vidhrdw/neogeo.o $(OBJ)/drivers/neogeo.o \

COREOBJS += $(OBJ)/driver.o $(OBJ)/cheat.o


Simply replace your MAME.MAK with this. It works fine with MAME, MAME32 and I hope with Plus! too. Don't modify anything else in the source core. I have attached the file for test.
Title: Re: Help on makeing a neomame build for v0.103
Post by: KingHanco on January 17, 2006, 06:14:49 PM
Everymine. I had it in the wrong folder. It shouldv'e been in the D:\MAMESRC\src instead in the D:\MAMESRC. I try it and it gave me a bunches of drivers errors.
Title: Re: Help on makeing a neomame build for v0.103
Post by: robber804 on January 18, 2006, 01:53:24 AM
Uhhhh... Does work you probably didn't delete the obj directory before you tried to recompile using the new mame.mak.

Uhhhh... Doesn't work. It looking for the missing files from the Mame 0.103u2 source. What did I do wrong? ---> Missing the neogeo.a. Where do I look for the neogeo.a at?

Or is this wrong?

Code: [Select]
@echo off
set PATH=C:\MinGW\bin;%PATH%
echo Compile in progress Please wait !
make -f mame.mak WINUI=1 SUFFIX=32 NAME=MAME32
echo Compile is complete .
pause
echo Enjoy :)
pause
Title: Re: Help on makeing a neomame build for v0.103
Post by: KingHanco on January 18, 2006, 02:01:35 AM
Uhhhh... Does work you probably didn't delete the obj directory before you tried to recompile using the new mame.mak.


No. There wasn't a obj directory. Read at the top. I had it in the wrong folder. It have alots of errors.

Anyway, I can't get it to make without the games drivers error.
Title: Re: Help on makeing a neomame build for v0.103
Post by: mamesick on January 18, 2006, 03:36:55 AM
Anyway, I can't get it to make without the games drivers error.

Obviously you have to modify driver.c too and remove all non-neogeo games. I thought this was implicit...
Title: Re: Help on makeing a neomame build for v0.103
Post by: KingHanco on January 18, 2006, 05:43:04 AM
Obviously you have to modify driver.c too and remove all non-neogeo games. I thought this was implicit...

Oh great. Thanks for the tip. :biggrin:

=====================================================================================

Is this the way that add the Capcom games?

Code: [Select]
# uncomment the following lines to include a CPU core
CPUS+=Z80@
CPUS+=M68000@

# uncomment the following lines to include a sound core
SOUNDS+=YM2610@
SOUNDS+=YM2610B@

DRVLIBS = \
$(OBJ)/neogeo.a $(OBJ)/capcom.a \

$(OBJ)/neogeo.a: \
$(OBJ)/machine/neogeo.o $(OBJ)/machine/pd4990a.o \
$(OBJ)/machine/neocrypt.o $(OBJ)/machine/neoprot.o $(OBJ)/machine/neoboot.o \
$(OBJ)/vidhrdw/neogeo.o $(OBJ)/drivers/neogeo.o \

$(OBJ)/capcom.a: \
$(OBJ)/vidhrdw/vulgus.o $(OBJ)/drivers/vulgus.o \
$(OBJ)/vidhrdw/sonson.o $(OBJ)/drivers/sonson.o \
$(OBJ)/vidhrdw/higemaru.o $(OBJ)/drivers/higemaru.o \
$(OBJ)/vidhrdw/1942.o $(OBJ)/drivers/1942.o \
$(OBJ)/vidhrdw/exedexes.o $(OBJ)/drivers/exedexes.o \
$(OBJ)/vidhrdw/commando.o $(OBJ)/drivers/commando.o \
$(OBJ)/vidhrdw/gng.o $(OBJ)/drivers/gng.o \
$(OBJ)/vidhrdw/gunsmoke.o $(OBJ)/drivers/gunsmoke.o \
$(OBJ)/vidhrdw/srumbler.o $(OBJ)/drivers/srumbler.o \
$(OBJ)/vidhrdw/lwings.o $(OBJ)/drivers/lwings.o \
$(OBJ)/vidhrdw/sidearms.o $(OBJ)/drivers/sidearms.o \
$(OBJ)/vidhrdw/bionicc.o $(OBJ)/drivers/bionicc.o \
$(OBJ)/vidhrdw/1943.o $(OBJ)/drivers/1943.o \
$(OBJ)/vidhrdw/blktiger.o $(OBJ)/drivers/blktiger.o \
$(OBJ)/vidhrdw/tigeroad.o $(OBJ)/drivers/tigeroad.o \
$(OBJ)/vidhrdw/lastduel.o $(OBJ)/drivers/lastduel.o \
$(OBJ)/vidhrdw/sf.o $(OBJ)/drivers/sf.o \
$(OBJ)/machine/kabuki.o \
$(OBJ)/vidhrdw/mitchell.o $(OBJ)/drivers/mitchell.o \
$(OBJ)/drivers/egghunt.o \
$(OBJ)/vidhrdw/cbasebal.o $(OBJ)/drivers/cbasebal.o \
$(OBJ)/vidhrdw/cps1.o $(OBJ)/drivers/cps1.o $(OBJ)/drivers/cps2.o \
$(OBJ)/drivers/fcrash.o \
$(OBJ)/drivers/cps3.o \
$(OBJ)/machine/znsec.o $(OBJ)/machine/at28c16.o $(OBJ)/machine/mb3773.o $(OBJ)/drivers/zn.o \

COREOBJS += $(OBJ)/driver.o $(OBJ)/cheat.o

What do I need to add in for the Capcom CPU and Sound core?
Title: Re: Help on makeing a neomame build for v0.103
Post by: mamesick on January 18, 2006, 10:16:33 AM
Adding CPS1 and CPS2 is easy. Others capcom games are a little bit more complicated because you have to go into every driver and take note of which CPU(s) and sound core(s) it uses. :eek:
I made a NeoGeo/CPS1/CPS2 mak file. Please don't ask for more...
Code: [Select]
# CPUs -- NeoGeo and CPS1/CPS2
CPUS+=Z80@
CPUS+=M68000@

# NeoGeo sound chips
SOUNDS+=YM2610@
SOUNDS+=YM2610B@

# CapCom System 1 and System 2 sound chips
SOUNDS+=YM2151@
SOUNDS+=OKIM6295@
SOUNDS+=QSOUND@

DRVLIBS = \
$(OBJ)/capcom.a $(OBJ)/neogeo.a \

$(OBJ)/capcom.a: \
$(OBJ)/vidhrdw/cps1.o $(OBJ)/drivers/cps1.o $(OBJ)/drivers/cps2.o \

$(OBJ)/neogeo.a: \
$(OBJ)/machine/neogeo.o $(OBJ)/machine/pd4990a.o \
$(OBJ)/machine/neocrypt.o $(OBJ)/machine/neoprot.o $(OBJ)/machine/neoboot.o \
$(OBJ)/vidhrdw/neogeo.o $(OBJ)/drivers/neogeo.o \

COREOBJS += $(OBJ)/driver.o $(OBJ)/cheat.o


Don't forget the driver.c....now you're on your own. :wink:
Title: Re: Help on makeing a neomame build for v0.103
Post by: KingHanco on January 18, 2006, 06:00:06 PM
mamesick, thanks alot.

================

Final Crash - I added it in there as well. Seem fine.

There is some problems on the wof, dino, punsher and slammast decode. Needed this $(OBJ)/machine/kabuki.o \ and I added it in my side. :)