mirror of
https://github.com/holub/mame
synced 2025-06-08 13:53:52 +03:00
- Updated romload so devices are loaded from separate files [Miodrag Milanovic]
- Removed LOADBYNAME, since it is deprecated by using per device rom load_software_part_region - Created makedev tool to generate array of devices, and created lst file according to current devices usage. - Changed listxml command to output device roms too
This commit is contained in:
parent
b368e07f95
commit
3bdfb55b35
3
.gitattributes
vendored
3
.gitattributes
vendored
@ -24,6 +24,7 @@ hlsl/yiq_encode.fx svneol=native#text/plain
|
|||||||
src/build/build.mak svneol=native#text/plain
|
src/build/build.mak svneol=native#text/plain
|
||||||
src/build/file2str.c svneol=native#text/plain
|
src/build/file2str.c svneol=native#text/plain
|
||||||
src/build/makedep.c svneol=native#text/plain
|
src/build/makedep.c svneol=native#text/plain
|
||||||
|
src/build/makedev.c svneol=native#text/plain
|
||||||
src/build/makelist.c svneol=native#text/plain
|
src/build/makelist.c svneol=native#text/plain
|
||||||
src/build/png2bdc.c svneol=native#text/plain
|
src/build/png2bdc.c svneol=native#text/plain
|
||||||
src/build/verinfo.c svneol=native#text/plain
|
src/build/verinfo.c svneol=native#text/plain
|
||||||
@ -4002,8 +4003,10 @@ src/mame/machine/zs01.c svneol=native#text/plain
|
|||||||
src/mame/machine/zs01.h svneol=native#text/plain
|
src/mame/machine/zs01.h svneol=native#text/plain
|
||||||
src/mame/mame.lst svneol=native#text/plain
|
src/mame/mame.lst svneol=native#text/plain
|
||||||
src/mame/mame.mak svneol=native#text/plain
|
src/mame/mame.mak svneol=native#text/plain
|
||||||
|
src/mame/mame_dev.lst svneol=native#text/plain
|
||||||
src/mame/tiny.lst svneol=native#text/plain
|
src/mame/tiny.lst svneol=native#text/plain
|
||||||
src/mame/tiny.mak svneol=native#text/plain
|
src/mame/tiny.mak svneol=native#text/plain
|
||||||
|
src/mame/tiny_dev.lst svneol=native#text/plain
|
||||||
src/mame/video/1942.c svneol=native#text/plain
|
src/mame/video/1942.c svneol=native#text/plain
|
||||||
src/mame/video/1943.c svneol=native#text/plain
|
src/mame/video/1943.c svneol=native#text/plain
|
||||||
src/mame/video/20pacgal.c svneol=native#text/plain
|
src/mame/video/20pacgal.c svneol=native#text/plain
|
||||||
|
12
makefile
12
makefile
@ -580,6 +580,8 @@ LIBOSD = $(OBJ)/libosd.a
|
|||||||
VERSIONOBJ = $(OBJ)/version.o
|
VERSIONOBJ = $(OBJ)/version.o
|
||||||
DRIVLISTSRC = $(OBJ)/drivlist.c
|
DRIVLISTSRC = $(OBJ)/drivlist.c
|
||||||
DRIVLISTOBJ = $(OBJ)/drivlist.o
|
DRIVLISTOBJ = $(OBJ)/drivlist.o
|
||||||
|
DEVLISTSRC = $(OBJ)/devlist.c
|
||||||
|
DEVLISTOBJ = $(OBJ)/devlist.o
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -721,7 +723,7 @@ ifndef EXECUTABLE_DEFINED
|
|||||||
# always recompile the version string
|
# always recompile the version string
|
||||||
$(VERSIONOBJ): $(DRVLIBS) $(LIBOSD) $(LIBCPU) $(LIBEMU) $(LIBSOUND) $(LIBUTIL) $(EXPAT) $(ZLIB) $(SOFTFLOAT) $(FORMATS_LIB) $(COTHREAD) $(LIBOCORE) $(RESFILE)
|
$(VERSIONOBJ): $(DRVLIBS) $(LIBOSD) $(LIBCPU) $(LIBEMU) $(LIBSOUND) $(LIBUTIL) $(EXPAT) $(ZLIB) $(SOFTFLOAT) $(FORMATS_LIB) $(COTHREAD) $(LIBOCORE) $(RESFILE)
|
||||||
|
|
||||||
$(EMULATOR): $(VERSIONOBJ) $(DRIVLISTOBJ) $(DRVLIBS) $(LIBOSD) $(LIBCPU) $(LIBEMU) $(LIBDASM) $(LIBSOUND) $(LIBUTIL) $(EXPAT) $(SOFTFLOAT) $(FORMATS_LIB) $(COTHREAD) $(ZLIB) $(LIBOCORE) $(RESFILE)
|
$(EMULATOR): $(VERSIONOBJ) $(DRIVLISTOBJ) $(DEVLISTOBJ) $(DRVLIBS) $(LIBOSD) $(LIBCPU) $(LIBEMU) $(LIBDASM) $(LIBSOUND) $(LIBUTIL) $(EXPAT) $(SOFTFLOAT) $(FORMATS_LIB) $(COTHREAD) $(ZLIB) $(LIBOCORE) $(RESFILE)
|
||||||
@echo Linking $@...
|
@echo Linking $@...
|
||||||
$(LD) $(LDFLAGS) $(LDFLAGSEMULATOR) $^ $(LIBS) -o $@
|
$(LD) $(LDFLAGS) $(LDFLAGSEMULATOR) $^ $(LIBS) -o $@
|
||||||
ifeq ($(TARGETOS),win32)
|
ifeq ($(TARGETOS),win32)
|
||||||
@ -763,10 +765,18 @@ $(DRIVLISTOBJ): $(DRIVLISTSRC)
|
|||||||
@echo Compiling $<...
|
@echo Compiling $<...
|
||||||
$(CC) $(CDEFS) $(CFLAGS) -c $< -o $@
|
$(CC) $(CDEFS) $(CFLAGS) -c $< -o $@
|
||||||
|
|
||||||
|
$(DEVLISTOBJ): $(DEVLISTSRC)
|
||||||
|
@echo Compiling $<...
|
||||||
|
$(CC) $(CDEFS) $(CFLAGS) -c $< -o $@
|
||||||
|
|
||||||
$(DRIVLISTSRC): $(SRC)/$(TARGET)/$(SUBTARGET).lst $(MAKELIST_TARGET)
|
$(DRIVLISTSRC): $(SRC)/$(TARGET)/$(SUBTARGET).lst $(MAKELIST_TARGET)
|
||||||
@echo Building driver list $<...
|
@echo Building driver list $<...
|
||||||
@$(MAKELIST) $< >$@
|
@$(MAKELIST) $< >$@
|
||||||
|
|
||||||
|
$(DEVLISTSRC): $(SRC)/$(TARGET)/$(SUBTARGET)_dev.lst $(MAKEDEV_TARGET)
|
||||||
|
@echo Building device list $<...
|
||||||
|
@$(MAKEDEV) $< >$@
|
||||||
|
|
||||||
$(OBJ)/%.a:
|
$(OBJ)/%.a:
|
||||||
@echo Archiving $@...
|
@echo Archiving $@...
|
||||||
$(RM) $@
|
$(RM) $@
|
||||||
|
@ -21,6 +21,7 @@ OBJDIRS += \
|
|||||||
FILE2STR_TARGET = $(BUILDOUT)/file2str$(BUILD_EXE)
|
FILE2STR_TARGET = $(BUILDOUT)/file2str$(BUILD_EXE)
|
||||||
MAKEDEP_TARGET = $(BUILDOUT)/makedep$(BUILD_EXE)
|
MAKEDEP_TARGET = $(BUILDOUT)/makedep$(BUILD_EXE)
|
||||||
MAKELIST_TARGET = $(BUILDOUT)/makelist$(BUILD_EXE)
|
MAKELIST_TARGET = $(BUILDOUT)/makelist$(BUILD_EXE)
|
||||||
|
MAKEDEV_TARGET = $(BUILDOUT)/makedev$(BUILD_EXE)
|
||||||
PNG2BDC_TARGET = $(BUILDOUT)/png2bdc$(BUILD_EXE)
|
PNG2BDC_TARGET = $(BUILDOUT)/png2bdc$(BUILD_EXE)
|
||||||
VERINFO_TARGET = $(BUILDOUT)/verinfo$(BUILD_EXE)
|
VERINFO_TARGET = $(BUILDOUT)/verinfo$(BUILD_EXE)
|
||||||
|
|
||||||
@ -28,12 +29,14 @@ ifeq ($(TARGETOS),win32)
|
|||||||
FILE2STR = $(subst /,\,$(FILE2STR_TARGET))
|
FILE2STR = $(subst /,\,$(FILE2STR_TARGET))
|
||||||
MAKEDEP = $(subst /,\,$(MAKEDEP_TARGET))
|
MAKEDEP = $(subst /,\,$(MAKEDEP_TARGET))
|
||||||
MAKELIST = $(subst /,\,$(MAKELIST_TARGET))
|
MAKELIST = $(subst /,\,$(MAKELIST_TARGET))
|
||||||
|
MAKEDEV = $(subst /,\,$(MAKEDEV_TARGET))
|
||||||
PNG2BDC = $(subst /,\,$(PNG2BDC_TARGET))
|
PNG2BDC = $(subst /,\,$(PNG2BDC_TARGET))
|
||||||
VERINFO = $(subst /,\,$(VERINFO_TARGET))
|
VERINFO = $(subst /,\,$(VERINFO_TARGET))
|
||||||
else
|
else
|
||||||
FILE2STR = $(FILE2STR_TARGET)
|
FILE2STR = $(FILE2STR_TARGET)
|
||||||
MAKEDEP = $(MAKEDEP_TARGET)
|
MAKEDEP = $(MAKEDEP_TARGET)
|
||||||
MAKELIST = $(MAKELIST_TARGET)
|
MAKELIST = $(MAKELIST_TARGET)
|
||||||
|
MAKEDEV = $(MAKEDEV_TARGET)
|
||||||
PNG2BDC = $(PNG2BDC_TARGET)
|
PNG2BDC = $(PNG2BDC_TARGET)
|
||||||
VERINFO = $(VERINFO_TARGET)
|
VERINFO = $(VERINFO_TARGET)
|
||||||
endif
|
endif
|
||||||
@ -43,6 +46,7 @@ BUILD += \
|
|||||||
$(FILE2STR_TARGET) \
|
$(FILE2STR_TARGET) \
|
||||||
$(MAKEDEP_TARGET) \
|
$(MAKEDEP_TARGET) \
|
||||||
$(MAKELIST_TARGET) \
|
$(MAKELIST_TARGET) \
|
||||||
|
$(MAKEDEV_TARGET) \
|
||||||
$(PNG2BDC_TARGET) \
|
$(PNG2BDC_TARGET) \
|
||||||
$(VERINFO_TARGET) \
|
$(VERINFO_TARGET) \
|
||||||
|
|
||||||
@ -87,6 +91,19 @@ $(MAKELIST_TARGET): $(MAKELISTOBJS) $(LIBUTIL) $(LIBOCORE) $(ZLIB)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------
|
||||||
|
# makedev
|
||||||
|
#-------------------------------------------------
|
||||||
|
|
||||||
|
MAKEDEVOBJS = \
|
||||||
|
$(BUILDOBJ)/makedev.o \
|
||||||
|
|
||||||
|
$(MAKEDEV_TARGET): $(MAKEDEVOBJS) $(LIBUTIL) $(LIBOCORE) $(ZLIB)
|
||||||
|
@echo Linking $@...
|
||||||
|
$(LD) $(LDFLAGS) $^ $(LIBS) -o $@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#-------------------------------------------------
|
#-------------------------------------------------
|
||||||
# png2bdc
|
# png2bdc
|
||||||
#-------------------------------------------------
|
#-------------------------------------------------
|
||||||
|
233
src/build/makedev.c
Normal file
233
src/build/makedev.c
Normal file
@ -0,0 +1,233 @@
|
|||||||
|
/***************************************************************************
|
||||||
|
|
||||||
|
makedev.c
|
||||||
|
|
||||||
|
Create and sort the driver list.
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
Copyright Aaron Giles
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
* Neither the name 'MAME' nor the names of its contributors may be
|
||||||
|
used to endorse or promote products derived from this software
|
||||||
|
without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND ANY EXPRESS OR
|
||||||
|
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT,
|
||||||
|
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||||
|
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
#include "corefile.h"
|
||||||
|
|
||||||
|
|
||||||
|
#define MAX_DEVICES 65536
|
||||||
|
|
||||||
|
static const char *devlist[MAX_DEVICES];
|
||||||
|
static int devcount;
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// driver_sort_callback - compare two items in
|
||||||
|
// a string array
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
int sort_callback(const void *elem1, const void *elem2)
|
||||||
|
{
|
||||||
|
const char **item1 = (const char **)elem1;
|
||||||
|
const char **item2 = (const char **)elem2;
|
||||||
|
return strcmp(*item1, *item2);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// parse_file - parse a single file, may be
|
||||||
|
// called recursively
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
int parse_file(const char *srcfile)
|
||||||
|
{
|
||||||
|
// read source file
|
||||||
|
void *buffer;
|
||||||
|
UINT32 length;
|
||||||
|
file_error filerr = core_fload(srcfile, &buffer, &length);
|
||||||
|
if (filerr != FILERR_NONE)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Unable to read source file '%s'\n", srcfile);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// rip through it to find all drivers
|
||||||
|
char *srcptr = (char *)buffer;
|
||||||
|
char *endptr = srcptr + length;
|
||||||
|
int linenum = 1;
|
||||||
|
bool in_comment = false;
|
||||||
|
while (srcptr < endptr)
|
||||||
|
{
|
||||||
|
char c = *srcptr++;
|
||||||
|
|
||||||
|
// count newlines
|
||||||
|
if (c == 13 || c == 10)
|
||||||
|
{
|
||||||
|
if (c == 13 && *srcptr == 10)
|
||||||
|
srcptr++;
|
||||||
|
linenum++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// skip any spaces
|
||||||
|
if (isspace(c))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// look for end of C comment
|
||||||
|
if (in_comment && c == '*' && *srcptr == '/')
|
||||||
|
{
|
||||||
|
srcptr++;
|
||||||
|
in_comment = false;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// skip anything else inside a C comment
|
||||||
|
if (in_comment)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// look for start of C comment
|
||||||
|
if (c == '/' && *srcptr == '*')
|
||||||
|
{
|
||||||
|
srcptr++;
|
||||||
|
in_comment = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// if we hit a C++ comment, scan to the end of line
|
||||||
|
if (c == '/' && *srcptr == '/')
|
||||||
|
{
|
||||||
|
while (srcptr < endptr && *srcptr != 13 && *srcptr != 10)
|
||||||
|
srcptr++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// look for an import directive
|
||||||
|
if (c == '#')
|
||||||
|
{
|
||||||
|
char filename[256];
|
||||||
|
filename[0] = 0;
|
||||||
|
for (int pos = 0; srcptr < endptr && pos < ARRAY_LENGTH(filename) - 1 && !isspace(*srcptr); pos++)
|
||||||
|
{
|
||||||
|
filename[pos] = *srcptr++;
|
||||||
|
filename[pos+1] = 0;
|
||||||
|
}
|
||||||
|
fprintf(stderr, "Importing devices from '%s'\n", filename);
|
||||||
|
parse_file(filename);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// otherwise treat as a device name
|
||||||
|
char drivname[32];
|
||||||
|
drivname[0] = 0;
|
||||||
|
srcptr--;
|
||||||
|
for (int pos = 0; srcptr < endptr && pos < ARRAY_LENGTH(drivname) - 1 && !isspace(*srcptr); pos++)
|
||||||
|
{
|
||||||
|
drivname[pos] = *srcptr++;
|
||||||
|
drivname[pos+1] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// verify the name as valid
|
||||||
|
for (char *drivch = drivname; *drivch != 0; drivch++)
|
||||||
|
{
|
||||||
|
if ((*drivch >= 'A' && *drivch <= 'Z') || (*drivch >= '0' && *drivch <= '9') || *drivch == '_')
|
||||||
|
continue;
|
||||||
|
fprintf(stderr, "%s:%d - Invalid character '%c' in device type \"%s\"\n", srcfile, linenum, *drivch, drivname);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// add it to the list
|
||||||
|
char *name = (char *)malloc(strlen(drivname) + 1);
|
||||||
|
strcpy(name, drivname);
|
||||||
|
devlist[devcount++] = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
osd_free(buffer);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// main - primary entry point
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
// needs at least 1 argument
|
||||||
|
if (argc < 2)
|
||||||
|
{
|
||||||
|
fprintf(stderr,
|
||||||
|
"Usage:\n"
|
||||||
|
" makedev <source.lst>\n"
|
||||||
|
);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// extract arguments
|
||||||
|
const char *srcfile = argv[1];
|
||||||
|
|
||||||
|
// parse the root file, exit early upon failure
|
||||||
|
devcount = 0;
|
||||||
|
if (parse_file(srcfile))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
// output a count
|
||||||
|
if (devcount == 0)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "No devices found\n");
|
||||||
|
} else {
|
||||||
|
fprintf(stderr, "%d devices found\n", devcount);
|
||||||
|
}
|
||||||
|
|
||||||
|
// sort the list
|
||||||
|
qsort(devlist, devcount, sizeof(*devlist), sort_callback);
|
||||||
|
|
||||||
|
// start with a header
|
||||||
|
printf("#include \"emu.h\"\n\n");
|
||||||
|
|
||||||
|
// output the list of externs first
|
||||||
|
for (int index = 0; index < devcount; index++)
|
||||||
|
printf("extern const device_type %s;\n", devlist[index]);
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
// then output the array
|
||||||
|
printf("const device_type * s_devices_sorted[] =\n");
|
||||||
|
printf("{\n");
|
||||||
|
for (int index = 0; index < devcount; index++)
|
||||||
|
printf("\t&%s%s\n", devlist[index], (index == devcount - 1) ? "" : ",");
|
||||||
|
printf("};\n");
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
// also output a global count
|
||||||
|
printf("int m_device_count = %d;\n", devcount);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
@ -96,10 +96,10 @@ const char *driverpath = m_enumerator.config().devicelist().find("root")->search
|
|||||||
{
|
{
|
||||||
// temporary hack: add the driver path & region name
|
// temporary hack: add the driver path & region name
|
||||||
astring combinedpath(source->searchpath(), ";", driverpath);
|
astring combinedpath(source->searchpath(), ";", driverpath);
|
||||||
if(ROMREGION_ISLOADBYNAME(region))
|
if(source->shortname())
|
||||||
{
|
{
|
||||||
combinedpath=combinedpath.cat(";");
|
combinedpath=combinedpath.cat(";");
|
||||||
combinedpath=combinedpath.cat(ROMREGION_GETTAG(region));
|
combinedpath=combinedpath.cat(source->shortname());
|
||||||
}
|
}
|
||||||
m_searchpath = combinedpath;
|
m_searchpath = combinedpath;
|
||||||
|
|
||||||
|
@ -232,11 +232,50 @@ void info_xml_creator::output(FILE *out)
|
|||||||
while (m_drivlist.next())
|
while (m_drivlist.next())
|
||||||
output_one();
|
output_one();
|
||||||
|
|
||||||
|
// iterate through the devices, and output their roms
|
||||||
|
output_devices();
|
||||||
// close the top level tag
|
// close the top level tag
|
||||||
fprintf(m_output, "</" XML_ROOT ">\n");
|
fprintf(m_output, "</" XML_ROOT ">\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------
|
||||||
|
// output_devices - print the XML information
|
||||||
|
// for one particular game driver
|
||||||
|
//-------------------------------------------------
|
||||||
|
|
||||||
|
void info_xml_creator::output_devices()
|
||||||
|
{
|
||||||
|
extern const device_type *s_devices_sorted[];
|
||||||
|
extern int m_device_count;
|
||||||
|
|
||||||
|
m_drivlist.reset();
|
||||||
|
m_drivlist.next();
|
||||||
|
machine_config &config = m_drivlist.config();
|
||||||
|
device_t *owner = config.devicelist().first();
|
||||||
|
for(int i=0;i<m_device_count;i++) {
|
||||||
|
device_type type = *s_devices_sorted[i];
|
||||||
|
device_t *dev = (*type)(config, "dummy", owner, 0);
|
||||||
|
dev->config_complete();
|
||||||
|
|
||||||
|
// print the header and the game name
|
||||||
|
fprintf(m_output, "\t<" XML_TOP);
|
||||||
|
fprintf(m_output, " name=\"%s\"", xml_normalize_string(dev->shortname()));
|
||||||
|
fprintf(m_output, " runnable=\"no\"");
|
||||||
|
fprintf(m_output, ">\n");
|
||||||
|
|
||||||
|
// output device description
|
||||||
|
if (dev->name() != NULL)
|
||||||
|
fprintf(m_output, "\t\t<description>%s</description>\n", xml_normalize_string(dev->name()));
|
||||||
|
|
||||||
|
output_rom(dev);
|
||||||
|
|
||||||
|
// close the topmost tag
|
||||||
|
fprintf(m_output, "\t</" XML_TOP ">\n");
|
||||||
|
global_free(dev);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
// output_one - print the XML information
|
// output_one - print the XML information
|
||||||
// for one particular game driver
|
// for one particular game driver
|
||||||
@ -301,7 +340,7 @@ void info_xml_creator::output_one()
|
|||||||
|
|
||||||
// now print various additional information
|
// now print various additional information
|
||||||
output_bios();
|
output_bios();
|
||||||
output_rom();
|
output_rom(rom_first_source(m_drivlist.config()));
|
||||||
output_sample();
|
output_sample();
|
||||||
output_chips();
|
output_chips();
|
||||||
output_display();
|
output_display();
|
||||||
@ -381,13 +420,11 @@ void info_xml_creator::output_bios()
|
|||||||
// the XML output
|
// the XML output
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
|
||||||
void info_xml_creator::output_rom()
|
void info_xml_creator::output_rom(const rom_source *source)
|
||||||
{
|
{
|
||||||
// iterate over 3 different ROM "types": BIOS, ROMs, DISKs
|
// iterate over 3 different ROM "types": BIOS, ROMs, DISKs
|
||||||
for (int rom_type = 0; rom_type < 3; rom_type++)
|
for (int rom_type = 0; rom_type < 3; rom_type++)
|
||||||
{
|
{
|
||||||
// iterate over ROM sources: first the game, then any devices
|
|
||||||
for (const rom_source *source = rom_first_source(m_drivlist.config()); source != NULL; source = rom_next_source(*source))
|
|
||||||
for (const rom_entry *region = rom_first_region(*source); region != NULL; region = rom_next_region(region))
|
for (const rom_entry *region = rom_first_region(*source); region != NULL; region = rom_next_region(region))
|
||||||
{
|
{
|
||||||
bool is_disk = ROMREGION_ISDISKDATA(region);
|
bool is_disk = ROMREGION_ISDISKDATA(region);
|
||||||
|
@ -62,7 +62,7 @@ private:
|
|||||||
void output_one();
|
void output_one();
|
||||||
void output_sampleof();
|
void output_sampleof();
|
||||||
void output_bios();
|
void output_bios();
|
||||||
void output_rom();
|
void output_rom(const rom_source *source);
|
||||||
void output_sample();
|
void output_sample();
|
||||||
void output_chips();
|
void output_chips();
|
||||||
void output_display();
|
void output_display();
|
||||||
@ -77,6 +77,8 @@ private:
|
|||||||
void output_software_list();
|
void output_software_list();
|
||||||
void output_ramoptions();
|
void output_ramoptions();
|
||||||
|
|
||||||
|
void output_devices();
|
||||||
|
|
||||||
const char *get_merge_name(const hash_collection &romhashes);
|
const char *get_merge_name(const hash_collection &romhashes);
|
||||||
|
|
||||||
// internal state
|
// internal state
|
||||||
|
@ -292,7 +292,7 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
|
|
||||||
ROM_START( pr8210 )
|
ROM_START( pr8210 )
|
||||||
ROM_REGION( 0x800, "pr8210", ROMREGION_LOADBYNAME )
|
ROM_REGION( 0x800, "pr8210", 0 )
|
||||||
ROM_LOAD( "pr-8210_mcu_ud6005a.bin", 0x000, 0x800, CRC(120fa83b) SHA1(b514326ca1f52d6d89056868f9d17eabd4e3f31d) )
|
ROM_LOAD( "pr-8210_mcu_ud6005a.bin", 0x000, 0x800, CRC(120fa83b) SHA1(b514326ca1f52d6d89056868f9d17eabd4e3f31d) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
@ -1005,10 +1005,10 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
|
|
||||||
ROM_START( simutrek )
|
ROM_START( simutrek )
|
||||||
ROM_REGION( 0x800, "pr8210", ROMREGION_LOADBYNAME )
|
ROM_REGION( 0x800, "pr8210", 0 )
|
||||||
ROM_LOAD( "pr-8210_mcu_ud6005a.bin", 0x000, 0x800, CRC(120fa83b) SHA1(b514326ca1f52d6d89056868f9d17eabd4e3f31d) )
|
ROM_LOAD( "pr-8210_mcu_ud6005a.bin", 0x000, 0x800, CRC(120fa83b) SHA1(b514326ca1f52d6d89056868f9d17eabd4e3f31d) )
|
||||||
|
|
||||||
ROM_REGION( 0x400, "simutrek", ROMREGION_LOADBYNAME)
|
ROM_REGION( 0x400, "simutrek", 0)
|
||||||
ROM_LOAD( "laser_player_interface_d8748_a308.bin", 0x0000, 0x0400, CRC(eed3e728) SHA1(1eb3467f1c41553375b2c21952cd593b167f5416) )
|
ROM_LOAD( "laser_player_interface_d8748_a308.bin", 0x0000, 0x0400, CRC(eed3e728) SHA1(1eb3467f1c41553375b2c21952cd593b167f5416) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
@ -180,7 +180,7 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
|
|
||||||
ROM_START( ldv1000 )
|
ROM_START( ldv1000 )
|
||||||
ROM_REGION( 0x2000, "ldv1000", ROMREGION_LOADBYNAME )
|
ROM_REGION( 0x2000, "ldv1000", 0 )
|
||||||
ROM_LOAD( "z03_1001_vyw-053_v1-0.bin", 0x0000, 0x2000, CRC(31ec4687) SHA1(52f91c304a878ba02b2fa1cda1a9489d6dd5a34f) )
|
ROM_LOAD( "z03_1001_vyw-053_v1-0.bin", 0x0000, 0x2000, CRC(31ec4687) SHA1(52f91c304a878ba02b2fa1cda1a9489d6dd5a34f) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
|
|
||||||
ROM_START( vp931 )
|
ROM_START( vp931 )
|
||||||
ROM_REGION( 0x800, "vp931", ROMREGION_LOADBYNAME )
|
ROM_REGION( 0x800, "vp931", 0 )
|
||||||
ROM_LOAD( "at-6-1_a.bin", 0x000, 0x800, CRC(e11b3c8d) SHA1(ea2d7f6a044ed085ce5e09d8b1b1a21c37f0e9b8) )
|
ROM_LOAD( "at-6-1_a.bin", 0x000, 0x800, CRC(e11b3c8d) SHA1(ea2d7f6a044ed085ce5e09d8b1b1a21c37f0e9b8) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
@ -1489,7 +1489,7 @@ static void process_region_list(rom_load_data *romdata)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* now process the entries in the region */
|
/* now process the entries in the region */
|
||||||
process_rom_entries(romdata, ROMREGION_ISLOADBYNAME(region) ? ROMREGION_GETTAG(region) : NULL, region + 1);
|
process_rom_entries(romdata, (source->shortname()!=NULL) ? source->shortname() : NULL, region + 1);
|
||||||
}
|
}
|
||||||
else if (ROMREGION_ISDISKDATA(region))
|
else if (ROMREGION_ISDISKDATA(region))
|
||||||
process_disk_entries(romdata, ROMREGION_GETTAG(region), region + 1, NULL);
|
process_disk_entries(romdata, ROMREGION_GETTAG(region), region + 1, NULL);
|
||||||
|
@ -65,10 +65,6 @@ enum
|
|||||||
#define ROMREGION_DATATYPEROM 0x00000000
|
#define ROMREGION_DATATYPEROM 0x00000000
|
||||||
#define ROMREGION_DATATYPEDISK 0x00004000
|
#define ROMREGION_DATATYPEDISK 0x00004000
|
||||||
|
|
||||||
#define ROMREGION_LOADBYNAMEMASK 0x00008000 /* use region name as path to read from */
|
|
||||||
#define ROMREGION_NOLOADBYNAME 0x00000000
|
|
||||||
#define ROMREGION_LOADBYNAME 0x00008000
|
|
||||||
|
|
||||||
#define ROMREGION_ERASEVALMASK 0x00ff0000 /* value to erase the region to */
|
#define ROMREGION_ERASEVALMASK 0x00ff0000 /* value to erase the region to */
|
||||||
#define ROMREGION_ERASEVAL(x) ((((x) & 0xff) << 16) | ROMREGION_ERASE)
|
#define ROMREGION_ERASEVAL(x) ((((x) & 0xff) << 16) | ROMREGION_ERASE)
|
||||||
#define ROMREGION_ERASE00 ROMREGION_ERASEVAL(0)
|
#define ROMREGION_ERASE00 ROMREGION_ERASEVAL(0)
|
||||||
@ -172,7 +168,6 @@ struct rom_entry
|
|||||||
#define ROMREGION_GETDATATYPE(r) (ROMREGION_GETFLAGS(r) & ROMREGION_DATATYPEMASK)
|
#define ROMREGION_GETDATATYPE(r) (ROMREGION_GETFLAGS(r) & ROMREGION_DATATYPEMASK)
|
||||||
#define ROMREGION_ISROMDATA(r) (ROMREGION_GETDATATYPE(r) == ROMREGION_DATATYPEROM)
|
#define ROMREGION_ISROMDATA(r) (ROMREGION_GETDATATYPE(r) == ROMREGION_DATATYPEROM)
|
||||||
#define ROMREGION_ISDISKDATA(r) (ROMREGION_GETDATATYPE(r) == ROMREGION_DATATYPEDISK)
|
#define ROMREGION_ISDISKDATA(r) (ROMREGION_GETDATATYPE(r) == ROMREGION_DATATYPEDISK)
|
||||||
#define ROMREGION_ISLOADBYNAME(r) ((ROMREGION_GETFLAGS(r) & ROMREGION_LOADBYNAMEMASK) == ROMREGION_LOADBYNAME)
|
|
||||||
|
|
||||||
|
|
||||||
/* ----- per-ROM macros ----- */
|
/* ----- per-ROM macros ----- */
|
||||||
|
@ -91,7 +91,7 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
// ROM definition for the BSMT2000 program ROM
|
// ROM definition for the BSMT2000 program ROM
|
||||||
ROM_START( bsmt2000 )
|
ROM_START( bsmt2000 )
|
||||||
ROM_REGION( 0x2000, "bsmt2000", ROMREGION_LOADBYNAME )
|
ROM_REGION( 0x2000, "bsmt2000", 0 )
|
||||||
ROM_LOAD16_WORD( "bsmt2000.bin", 0x0000, 0x2000, CRC(c2a265af) SHA1(6ec9eb038fb8eb842c5482aebe1d149daf49f2e6) )
|
ROM_LOAD16_WORD( "bsmt2000.bin", 0x0000, 0x2000, CRC(c2a265af) SHA1(6ec9eb038fb8eb842c5482aebe1d149daf49f2e6) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
@ -465,13 +465,6 @@ static bool validate_roms(driver_enumerator &drivlist, region_array *rgninfo, ga
|
|||||||
error = true;
|
error = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* load by name entries must be 8 characters or less */
|
|
||||||
else if (ROMREGION_ISLOADBYNAME(romp) && strlen(regiontag) > 8)
|
|
||||||
{
|
|
||||||
mame_printf_error("%s: %s has load-by-name region '%s' with name >8 characters\n", driver.source_file, driver.name, regiontag);
|
|
||||||
error = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* find any empty entry, checking for duplicates */
|
/* find any empty entry, checking for duplicates */
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -65,7 +65,7 @@ ADDRESS_MAP_END
|
|||||||
|
|
||||||
// internal character generator ROM
|
// internal character generator ROM
|
||||||
ROM_START( hd61830 )
|
ROM_START( hd61830 )
|
||||||
ROM_REGION( 0x5c0, "hd61830", ROMREGION_LOADBYNAME ) // internal 7360-bit chargen ROM
|
ROM_REGION( 0x5c0, "hd61830", 0 ) // internal 7360-bit chargen ROM
|
||||||
ROM_LOAD( "hd61830.bin", 0x000, 0x5c0, BAD_DUMP CRC(06a934da) SHA1(bf3f074db5dc92e6f530cb18d6c013563099a87d) ) // typed in from manual
|
ROM_LOAD( "hd61830.bin", 0x000, 0x5c0, BAD_DUMP CRC(06a934da) SHA1(bf3f074db5dc92e6f530cb18d6c013563099a87d) ) // typed in from manual
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
@ -189,7 +189,7 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
|
|
||||||
ROM_START( namco_52xx )
|
ROM_START( namco_52xx )
|
||||||
ROM_REGION( 0x400, "mcu", ROMREGION_LOADBYNAME )
|
ROM_REGION( 0x400, "mcu", 0 )
|
||||||
ROM_LOAD( "52xx.bin", 0x0000, 0x0400, CRC(3257d11e) SHA1(4883b2fdbc99eb7b9906357fcc53915842c2c186) )
|
ROM_LOAD( "52xx.bin", 0x0000, 0x0400, CRC(3257d11e) SHA1(4883b2fdbc99eb7b9906357fcc53915842c2c186) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
|
|
||||||
ROM_START( namco_54xx )
|
ROM_START( namco_54xx )
|
||||||
ROM_REGION( 0x400, "mcu", ROMREGION_LOADBYNAME )
|
ROM_REGION( 0x400, "mcu", 0 )
|
||||||
ROM_LOAD( "54xx.bin", 0x0000, 0x0400, CRC(ee7357e0) SHA1(01bdf984a49e8d0cc8761b2cc162fd6434d5afbe) )
|
ROM_LOAD( "54xx.bin", 0x0000, 0x0400, CRC(ee7357e0) SHA1(01bdf984a49e8d0cc8761b2cc162fd6434d5afbe) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ static MACHINE_CONFIG_FRAGMENT( mie )
|
|||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
ROM_START( mie )
|
ROM_START( mie )
|
||||||
ROM_REGION( 0x800, "mie", ROMREGION_LOADBYNAME )
|
ROM_REGION( 0x800, "mie", 0 )
|
||||||
ROM_LOAD( "315-6146.bin", 0x000, 0x800, CRC(9b197e35) SHA1(864d14d58732dd4e2ee538ccc71fa8df7013ba06))
|
ROM_LOAD( "315-6146.bin", 0x000, 0x800, CRC(9b197e35) SHA1(864d14d58732dd4e2ee538ccc71fa8df7013ba06))
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
@ -268,7 +268,7 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
|
|
||||||
ROM_START( namco_50xx )
|
ROM_START( namco_50xx )
|
||||||
ROM_REGION( 0x800, "mcu", ROMREGION_LOADBYNAME )
|
ROM_REGION( 0x800, "mcu", 0 )
|
||||||
ROM_LOAD( "50xx.bin", 0x0000, 0x0800, CRC(a0acbaf7) SHA1(f03c79451e73b3a93c1591cdb27fedc9f130508d) )
|
ROM_LOAD( "50xx.bin", 0x0000, 0x0800, CRC(a0acbaf7) SHA1(f03c79451e73b3a93c1591cdb27fedc9f130508d) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
@ -368,7 +368,7 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
|
|
||||||
ROM_START( namco_51xx )
|
ROM_START( namco_51xx )
|
||||||
ROM_REGION( 0x400, "mcu", ROMREGION_LOADBYNAME )
|
ROM_REGION( 0x400, "mcu", 0 )
|
||||||
ROM_LOAD( "51xx.bin", 0x0000, 0x0400, CRC(c2f57ef8) SHA1(50de79e0d6a76bda95ffb02fcce369a79e6abfec) )
|
ROM_LOAD( "51xx.bin", 0x0000, 0x0400, CRC(c2f57ef8) SHA1(50de79e0d6a76bda95ffb02fcce369a79e6abfec) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
@ -159,7 +159,7 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
|
|
||||||
ROM_START( namco_53xx )
|
ROM_START( namco_53xx )
|
||||||
ROM_REGION( 0x400, "mcu", ROMREGION_LOADBYNAME )
|
ROM_REGION( 0x400, "mcu", 0 )
|
||||||
ROM_LOAD( "53xx.bin", 0x0000, 0x0400, CRC(b326fecb) SHA1(758d8583d658e4f1df93184009d86c3eb8713899) )
|
ROM_LOAD( "53xx.bin", 0x0000, 0x0400, CRC(b326fecb) SHA1(758d8583d658e4f1df93184009d86c3eb8713899) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ static MACHINE_CONFIG_FRAGMENT( namco_62xx )
|
|||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
ROM_START( namco_62xx )
|
ROM_START( namco_62xx )
|
||||||
ROM_REGION( 0x800, "mcu", ROMREGION_LOADBYNAME )
|
ROM_REGION( 0x800, "mcu", 0 )
|
||||||
ROM_LOAD( "62xx.bin", 0x0000, 0x0800, CRC(308dc115) SHA1(fe0a60fc339ac2eeed4879a64c1aab130f9d4cfe) )
|
ROM_LOAD( "62xx.bin", 0x0000, 0x0800, CRC(308dc115) SHA1(fe0a60fc339ac2eeed4879a64c1aab130f9d4cfe) )
|
||||||
ROM_END
|
ROM_END
|
||||||
|
|
||||||
|
52
src/mame/mame_dev.lst
Normal file
52
src/mame/mame_dev.lst
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
|
||||||
|
mame_dev.lst
|
||||||
|
|
||||||
|
List of all enabled devices in the system. This file is parsed by
|
||||||
|
makedev.exe, sorted, and output as C code describing the devices.
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
Copyright Aaron Giles
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
* Neither the name 'MAME' nor the names of its contributors may be
|
||||||
|
used to endorse or promote products derived from this software
|
||||||
|
without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND ANY EXPRESS OR
|
||||||
|
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT,
|
||||||
|
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||||
|
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
BSMT2000
|
||||||
|
NAMCO_50XX
|
||||||
|
NAMCO_51XX
|
||||||
|
NAMCO_52XX
|
||||||
|
NAMCO_53XX
|
||||||
|
NAMCO_54XX
|
||||||
|
NAMCO_62XX
|
||||||
|
MIE
|
||||||
|
PHILLIPS_22VP931
|
||||||
|
PIONEER_LDV1000
|
||||||
|
PIONEER_PR8210
|
||||||
|
SIMUTREK_SPECIAL
|
39
src/mame/tiny_dev.lst
Normal file
39
src/mame/tiny_dev.lst
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
|
||||||
|
tiny_dev.lst
|
||||||
|
|
||||||
|
List of all enabled devices in the system. This file is parsed by
|
||||||
|
makedev.exe, sorted, and output as C code describing the devices.
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
Copyright Aaron Giles
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
* Neither the name 'MAME' nor the names of its contributors may be
|
||||||
|
used to endorse or promote products derived from this software
|
||||||
|
without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND ANY EXPRESS OR
|
||||||
|
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT,
|
||||||
|
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||||
|
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
******************************************************************************/
|
Loading…
Reference in New Issue
Block a user