This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
c/2889: ia64 gcc core dumps when compiling xmame-0.37b14.2
- To: gcc-gnats at gcc dot gnu dot org
- Subject: c/2889: ia64 gcc core dumps when compiling xmame-0.37b14.2
- From: cpg at aladdin dot de
- Date: Mon, 21 May 2001 14:56:14 +0200
- Cc: cpg at aladdin dot de
>Number: 2889
>Category: c
>Synopsis: ia64 gcc core dumps when compiling xmame-0.37b14.2
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: unassigned
>State: open
>Class: ice-on-legal-code
>Submitter-Id: net
>Arrival-Date: Mon May 21 06:06:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: Christian Groessler
>Release: 3.1 20010516 (experimental)
>Organization:
>Environment:
System: Linux muc-ia64 2.4.4 #2 Fri May 18 13:03:49 CEST 2001 ia64 unknown
Architecture: ia64
host: ia64-unknown-linux-gnu
build: ia64-unknown-linux-gnu
target: ia64-unknown-linux-gnu
configured with: ../gcc-cvs/gcc/configure --prefix=/opt/gcc-20010516 : (reconfigured)
>Description:
When compiling xmame-0.37b14.2 (from x.mame.net), gcc (cc1) segfaults compiling
the file megasys1.c.
>How-To-Repeat:
Here is the gcc -v output:
Reading specs from /opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/specs
Configured with: ../gcc-cvs/gcc/configure --prefix=/opt/gcc-20010516 : (reconfigured)
Thread model: single
gcc version 3.1 20010516 (experimental)
/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/cpp0 -lang-c -v -I. -Isrc -Imess -Isrc/unix -Ixmame.obj/cpu/m68000 -Isrc/cpu/m68000 -D__GNUC__=3 -D__GNUC_MINOR__=1 -D__GNUC_PATCHLEVEL__=0 -D__ia64 -D__ia64__ -D__linux -D__linux__ -D_LONGLONG -Dlinux -Dunix -D__LP64__ -D__ELF__ -D__ia64 -D__ia64__ -D__linux -D__linux__ -D_LONGLONG -D__linux__ -D__unix__ -D__LP64__ -D__ELF__ -D__linux -D__unix -Asystem=linux -Acpu=ia64 -Amachine=ia64 -D__OPTIMIZE__ -D__FAST_MATH__ -D__STDC_HOSTED__=1 -Wall -Wno-unused -D__LONG_MAX__=9223372036854775807L -DINLINE=static __inline__ -DLSB_FIRST -DALIGN_INTS -DALIGN_SHORTS -D__LP64__ -D__ARCH_linux -D__CPU_ia64 -Dx11 -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp -DPI=M_PI -DUNIX -DSIGNED_SAMPLES -DHAS_CUSTOM=1 -DHAS_SAMPLES=1 -DHAS_DAC=1 -DHAS_DISCRETE=1 -DHAS_AY8910=1 -DHAS_YM2203=1 -DHAS_YM2151=0 -DHAS_YM2151_ALT=1 -DHAS_YM2608=1 -DHAS_YM2610=1 -DHAS_YM2610B=1 -DHAS_YM2612=1 -DHAS_YM3438=1 -DHAS_YM2413=1 -DHAS_YM3812=1 -DHAS_YM3526=1 -DHAS_Y!
MZ280B=1 -DHAS_Y8950=1 -DHAS_SN76477=1 -DHAS_SN76496=1 -DHAS_POKEY=1 -DHAS_NES=1 -DHAS_ASTROCADE=1 -DHAS_NAMCO=1 -DHAS_TMS36XX=1 -DHAS_TMS5110=1 -DHAS_TMS5220=1 -DHAS_VLM5030=1 -DHAS_ADPCM=1 -DHAS_OKIM6295=1 -DHAS_MSM5205=1 -DHAS_UPD7759=1 -DHAS_HC55516=1 -DHAS_K005289=1 -DHAS_K007232=1 -DHAS_K051649=1 -DHAS_K053260=1 -DHAS_K054539=1 -DHAS_SEGAPCM=1 -DHAS_RF5C68=1 -DHAS_CEM3394=1 -DHAS_C140=1 -DHAS_QSOUND=1 -DHAS_SAA1099=1 -DHAS_IREMGA20=1 -DHAS_ES5505=1 -DHAS_ES5506=1 -DHAS_Z80=1 -DHAS_8080=1 -DHAS_8085A=1 -DHAS_M6502=1 -DHAS_M65C02=1 -DHAS_M65SC02=0 -DHAS_M65CE02=0 -DHAS_M6509=0 -DHAS_M6510=1 -DHAS_M6510T=0 -DHAS_M7501=0 -DHAS_M8502=0 -DHAS_N2A03=1 -DHAS_M4510=0 -DHAS_H6280=1 -DHAS_I86=1 -DHAS_I88=0 -DHAS_I186=1 -DHAS_I188=0 -DHAS_I286=0 -DHAS_V20=1 -DHAS_V30=1 -DHAS_V33=1 -DHAS_I8035=1 -DHAS_I8039=1 -DHAS_I8048=1 -DHAS_N7751=1 -DHAS_I8X41=1 -DHAS_M6800=1 -DHAS_M6801=1 -DHAS_M6802=1 -DHAS_M6803=1 -DHAS_M6808=1 -DHAS_HD63701=1 -DHAS_NSC8105=1 -DHAS_M6805=1 -DHAS_M68705=1 -D!
HAS_HD63705=1 -DHAS_HD6309=1 -DHAS_M6809=1 -DHAS_KONAMI=1 -DHAS_M68000=1 -DHAS_M68010=1 -DHAS_M68EC020=1 -DHAS_M68020=1 -DHAS_T11=1 -DHAS_S2650=1 -DHAS_TMS34010=1 -DHAS_TMS34020=0 -DHAS_TMS9900=0 -DHAS_TMS9940=0 -DHAS_TMS9980=1 -DHAS_TMS9985=0 -DHAS_TMS9989=0 -DHAS_TMS9995=1 -DHAS_TMS99105A=0 -DHAS_TMS99110A=0 -DHAS_Z8000=1 -DHAS_TMS320C10=1 -DHAS_CCPU=1 -DHAS_ADSP2100=1 -DHAS_ADSP2105=1 -DHAS_PSXCPU=1 -DHAS_ASAP=1 -DHAS_UPD7810=1 src/vidhrdw/megasys1.c megasys1.i
ignoring nonexistent directory "mess"
GNU CPP version 3.1 20010516 (experimental) (cpplib) (IA-64)
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/opt/gcc-20010516/ia64-unknown-linux/include"
#include "..." search starts here:
#include <...> search starts here:
.
src
src/unix
xmame.obj/cpu/m68000
src/cpu/m68000
/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include
/usr/include
End of search list.
/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/cc1 -fpreprocessed megasys1.i -quiet -dumpbase megasys1.c -O3 -Wall -Wno-unused -version -funroll-loops -fstrength-reduce -fomit-frame-pointer -ffast-math -falign-functions=32 -o megasys1.s
GNU CPP version 3.1 20010516 (experimental) (cpplib) (IA-64)
GNU C version 3.1 20010516 (experimental) (ia64-unknown-linux)
compiled by GNU C version 3.1 20010516 (experimental).
gcc: Internal error: Segmentation fault (program cc1)
Please submit a full bug report.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
Here's the contents of megasys1.i:
# 194 "src/vidhrdw/megasys1.c"
# 1 "src/driver.h" 1
# 1 "src/unix/osd_cpu.h" 1
# 27 "src/unix/osd_cpu.h"
# 1 "/usr/include/time.h" 1 3
# 28 "/usr/include/time.h" 3
# 1 "/usr/include/features.h" 1 3
# 283 "/usr/include/features.h" 3
# 1 "/usr/include/sys/cdefs.h" 1 3
# 284 "/usr/include/features.h" 2 3
# 311 "/usr/include/features.h" 3
# 1 "/usr/include/gnu/stubs.h" 1 3
# 312 "/usr/include/features.h" 2 3
# 29 "/usr/include/time.h" 2 3
# 38 "/usr/include/time.h" 3
# 1 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stddef.h" 1 3
# 199 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stddef.h" 3
typedef long unsigned int size_t;
# 39 "/usr/include/time.h" 2 3
# 1 "/usr/include/bits/time.h" 1 3
# 39 "/usr/include/bits/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 26 "/usr/include/bits/types.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/bits/types.h" 2 3
# 1 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stddef.h" 1 3
# 30 "/usr/include/bits/types.h" 2 3
typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;
typedef unsigned long int __u_quad_t;
typedef long int __quad_t;
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;
typedef __quad_t *__qaddr_t;
typedef __uint64_t __dev_t;
typedef __uint32_t __uid_t;
typedef __uint32_t __gid_t;
typedef __uint64_t __ino_t;
typedef __uint64_t __ino64_t;
typedef __uint32_t __mode_t;
typedef __uint64_t __nlink_t;
typedef __int64_t __off_t;
typedef __int64_t __off64_t;
typedef __int64_t __loff_t;
typedef __int32_t __pid_t;
typedef __int64_t __ssize_t;
typedef __uint64_t __rlim_t;
typedef __uint64_t __rlim64_t;
typedef __int64_t __blkcnt_t;
typedef __int64_t __blkcnt64_t;
typedef __uint64_t __fsblkcnt_t;
typedef __uint64_t __fsblkcnt64_t;
typedef __uint64_t __fsfilcnt_t;
typedef __uint64_t __fsfilcnt64_t;
typedef __uint32_t __id_t;
typedef struct
{
int __val[2];
} __fsid_t;
typedef int __daddr_t;
typedef char *__caddr_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef long int __suseconds_t;
typedef long int __swblk_t;
typedef long int __clock_t;
typedef int __key_t;
typedef int __clockid_t;
typedef int __timer_t;
typedef int __ipc_pid_t;
typedef long int __blksize_t;
typedef unsigned long int __fd_mask;
# 114 "/usr/include/bits/types.h" 3
typedef struct
{
__fd_mask __fds_bits[1024 / (8 * sizeof (__fd_mask))];
} __fd_set;
typedef int __t_scalar_t;
typedef unsigned int __t_uscalar_t;
typedef long int __intptr_t;
typedef unsigned int __socklen_t;
# 1 "/usr/include/bits/pthreadtypes.h" 1 3
# 23 "/usr/include/bits/pthreadtypes.h" 3
# 1 "/usr/include/bits/sched.h" 1 3
# 68 "/usr/include/bits/sched.h" 3
struct __sched_param
{
int sched_priority;
};
# 24 "/usr/include/bits/pthreadtypes.h" 2 3
struct _pthread_fastlock
{
long int __status;
int __spinlock;
};
typedef struct _pthread_descr_struct *_pthread_descr;
typedef struct
{
int __detachstate;
int __schedpolicy;
struct __sched_param __schedparam;
int __inheritsched;
int __scope;
size_t __guardsize;
int __stackaddr_set;
void *__stackaddr;
size_t __stacksize;
} pthread_attr_t;
typedef struct
{
struct _pthread_fastlock __c_lock;
_pthread_descr __c_waiting;
} pthread_cond_t;
typedef struct
{
int __dummy;
} pthread_condattr_t;
typedef unsigned int pthread_key_t;
typedef struct
{
int __m_reserved;
int __m_count;
_pthread_descr __m_owner;
int __m_kind;
struct _pthread_fastlock __m_lock;
} pthread_mutex_t;
typedef struct
{
int __mutexkind;
} pthread_mutexattr_t;
typedef int pthread_once_t;
# 140 "/usr/include/bits/pthreadtypes.h" 3
typedef unsigned long int pthread_t;
# 140 "/usr/include/bits/types.h" 2 3
# 40 "/usr/include/bits/time.h" 2 3
extern long int __sysconf (int);
# 43 "/usr/include/time.h" 2 3
# 56 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 57 "/usr/include/time.h" 2 3
typedef __clock_t clock_t;
# 1 "/usr/include/bits/types.h" 1 3
# 68 "/usr/include/time.h" 2 3
typedef __time_t time_t;
# 79 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 80 "/usr/include/time.h" 2 3
typedef __clockid_t clockid_t;
# 91 "/usr/include/time.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 92 "/usr/include/time.h" 2 3
typedef __timer_t timer_t;
# 106 "/usr/include/time.h" 3
struct timespec
{
long int tv_sec;
long int tv_nsec;
};
struct tm
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
long int tm_gmtoff;
__const char *tm_zone;
};
struct itimerspec
{
struct timespec it_interval;
struct timespec it_value;
};
struct sigevent;
# 163 "/usr/include/time.h" 3
extern clock_t clock (void) ;
extern time_t time (time_t *__timer) ;
extern double difftime (time_t __time1, time_t __time0)
__attribute__ ((__const__));
extern time_t mktime (struct tm *__tp) ;
extern size_t strftime (char *__restrict __s, size_t __maxsize,
__const char *__restrict __format,
__const struct tm *__restrict __tp) ;
# 194 "/usr/include/time.h" 3
extern struct tm *gmtime (__const time_t *__timer) ;
extern struct tm *localtime (__const time_t *__timer) ;
extern struct tm *gmtime_r (__const time_t *__restrict __timer,
struct tm *__restrict __tp) ;
extern struct tm *localtime_r (__const time_t *__restrict __timer,
struct tm *__restrict __tp) ;
extern char *asctime (__const struct tm *__tp) ;
extern char *ctime (__const time_t *__timer) ;
extern char *asctime_r (__const struct tm *__restrict __tp,
char *__restrict __buf) ;
extern char *ctime_r (__const time_t *__restrict __timer,
char *__restrict __buf) ;
extern char *__tzname[2];
extern int __daylight;
extern long int __timezone;
extern char *tzname[2];
extern void tzset (void) ;
extern int daylight;
extern long int timezone;
extern int stime (__const time_t *__when) ;
# 271 "/usr/include/time.h" 3
extern time_t timegm (struct tm *__tp) ;
extern time_t timelocal (struct tm *__tp) ;
extern int dysize (int __year) __attribute__ ((__const__));
extern int nanosleep (__const struct timespec *__requested_time,
struct timespec *__remaining) ;
extern int clock_getres (clockid_t __clock_id, struct timespec *__res) ;
extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) ;
extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
;
# 309 "/usr/include/time.h" 3
extern int timer_create (clockid_t __clock_id,
struct sigevent *__restrict __evp,
timer_t *__restrict __timerid) ;
extern int timer_delete (timer_t __timerid) ;
extern int timer_settime (timer_t __timerid, int __flags,
__const struct itimerspec *__restrict __value,
struct itimerspec *__restrict __ovalue) ;
extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
;
extern int timer_getoverrun (timer_t __timerid) ;
# 28 "src/unix/osd_cpu.h" 2
# 43 "src/unix/osd_cpu.h"
typedef signed char INT8;
typedef signed short INT16;
typedef signed int INT32;
typedef signed long long INT64;
typedef unsigned char UINT8;
typedef unsigned short UINT16;
typedef unsigned int UINT32;
typedef unsigned long long UINT64;
# 81 "src/unix/osd_cpu.h"
typedef union {
struct { UINT8 l,h,h2,h3; } b;
struct { UINT16 l,h; } w;
UINT32 d;
} PAIR;
# 5 "src/driver.h" 2
# 1 "src/memory.h" 1
# 12 "src/memory.h"
# 1 "src/unix/osd_cpu.h" 1
# 13 "src/memory.h" 2
# 1 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stddef.h" 1 3
# 147 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stddef.h" 3
typedef long int ptrdiff_t;
# 288 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stddef.h" 3
typedef int wchar_t;
# 14 "src/memory.h" 2
# 51 "src/memory.h"
typedef UINT8 data8_t;
typedef UINT16 data16_t;
typedef UINT32 data32_t;
typedef UINT32 offs_t;
typedef data8_t (*read8_handler) (offs_t offset __attribute__((__unused__)));
typedef void (*write8_handler) (offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
typedef data16_t (*read16_handler) (offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
typedef void (*write16_handler)(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
typedef data32_t (*read32_handler) (offs_t offset __attribute__((__unused__)), data32_t mem_mask __attribute__((__unused__)));
typedef void (*write32_handler)(offs_t offset __attribute__((__unused__)), data32_t data __attribute__((__unused__)), data32_t mem_mask __attribute__((__unused__)));
typedef offs_t (*opbase_handler) (offs_t address __attribute__((__unused__)));
typedef read8_handler mem_read_handler;
typedef write8_handler mem_write_handler;
typedef read16_handler mem_read16_handler;
typedef write16_handler mem_write16_handler;
typedef read32_handler mem_read32_handler;
typedef write32_handler mem_write32_handler;
typedef read8_handler port_read_handler;
typedef write8_handler port_write_handler;
typedef read16_handler port_read16_handler;
typedef write16_handler port_write16_handler;
typedef read32_handler port_read32_handler;
typedef write32_handler port_write32_handler;
struct ExtMemory
{
offs_t start, end;
UINT8 region;
UINT8 * data;
};
# 430 "src/memory.h"
struct Memory_ReadAddress
{
offs_t start, end;
mem_read_handler handler;
};
struct Memory_ReadAddress16
{
offs_t start, end;
mem_read16_handler handler;
};
struct Memory_ReadAddress32
{
offs_t start, end;
mem_read32_handler handler;
};
struct Memory_WriteAddress
{
offs_t start, end;
mem_write_handler handler;
data8_t ** base;
size_t * size;
};
struct Memory_WriteAddress16
{
offs_t start, end;
mem_write16_handler handler;
data16_t ** base;
size_t * size;
};
struct Memory_WriteAddress32
{
offs_t start, end;
mem_write32_handler handler;
data32_t ** base;
size_t * size;
};
struct IO_ReadPort
{
offs_t start, end;
port_read_handler handler;
};
struct IO_ReadPort16
{
offs_t start, end;
port_read16_handler handler;
};
struct IO_ReadPort32
{
offs_t start, end;
port_read32_handler handler;
};
struct IO_WritePort
{
offs_t start, end;
port_write_handler handler;
};
struct IO_WritePort16
{
offs_t start, end;
port_write16_handler handler;
};
struct IO_WritePort32
{
offs_t start, end;
port_write32_handler handler;
};
# 660 "src/memory.h"
data8_t cpu_readmem16 (offs_t offset); void cpu_writemem16 (offs_t offset, data8_t data); void cpu_setopbase16 (offs_t pc);
data8_t cpu_readmem17 (offs_t offset); void cpu_writemem17 (offs_t offset, data8_t data); void cpu_setopbase17 (offs_t pc);
data8_t cpu_readmem20 (offs_t offset); void cpu_writemem20 (offs_t offset, data8_t data); void cpu_setopbase20 (offs_t pc);
data8_t cpu_readmem21 (offs_t offset); void cpu_writemem21 (offs_t offset, data8_t data); void cpu_setopbase21 (offs_t pc);
data8_t cpu_readmem24 (offs_t offset); void cpu_writemem24 (offs_t offset, data8_t data); void cpu_setopbase24 (offs_t pc);
data8_t cpu_readmem16bew (offs_t offset); data16_t cpu_readmem16bew_word (offs_t offset); void cpu_writemem16bew (offs_t offset, data8_t data); void cpu_writemem16bew_word (offs_t offset, data16_t data); void cpu_setopbase16bew (offs_t pc);
data8_t cpu_readmem24bew (offs_t offset); data16_t cpu_readmem24bew_word (offs_t offset); void cpu_writemem24bew (offs_t offset, data8_t data); void cpu_writemem24bew_word (offs_t offset, data16_t data); void cpu_setopbase24bew (offs_t pc);
data8_t cpu_readmem32bew (offs_t offset); data16_t cpu_readmem32bew_word (offs_t offset); void cpu_writemem32bew (offs_t offset, data8_t data); void cpu_writemem32bew_word (offs_t offset, data16_t data); void cpu_setopbase32bew (offs_t pc);
data8_t cpu_readmem16lew (offs_t offset); data16_t cpu_readmem16lew_word (offs_t offset); void cpu_writemem16lew (offs_t offset, data8_t data); void cpu_writemem16lew_word (offs_t offset, data16_t data); void cpu_setopbase16lew (offs_t pc);
data8_t cpu_readmem17lew (offs_t offset); data16_t cpu_readmem17lew_word (offs_t offset); void cpu_writemem17lew (offs_t offset, data8_t data); void cpu_writemem17lew_word (offs_t offset, data16_t data); void cpu_setopbase17lew (offs_t pc);
data8_t cpu_readmem29lew (offs_t offset); data16_t cpu_readmem29lew_word (offs_t offset); void cpu_writemem29lew (offs_t offset, data8_t data); void cpu_writemem29lew_word (offs_t offset, data16_t data); void cpu_setopbase29lew (offs_t pc);
data8_t cpu_readmem32lew (offs_t offset); data16_t cpu_readmem32lew_word (offs_t offset); void cpu_writemem32lew (offs_t offset, data8_t data); void cpu_writemem32lew_word (offs_t offset, data16_t data); void cpu_setopbase32lew (offs_t pc);
data8_t cpu_readmem24bedw (offs_t offset); data16_t cpu_readmem24bedw_word (offs_t offset); data32_t cpu_readmem24bedw_dword (offs_t offset); void cpu_writemem24bedw (offs_t offset, data8_t data); void cpu_writemem24bedw_word (offs_t offset, data16_t data); void cpu_writemem24bedw_dword(offs_t offset, data32_t data); void cpu_setopbase24bedw (offs_t pc);
data8_t cpu_readmem29bedw (offs_t offset); data16_t cpu_readmem29bedw_word (offs_t offset); data32_t cpu_readmem29bedw_dword (offs_t offset); void cpu_writemem29bedw (offs_t offset, data8_t data); void cpu_writemem29bedw_word (offs_t offset, data16_t data); void cpu_writemem29bedw_dword(offs_t offset, data32_t data); void cpu_setopbase29bedw (offs_t pc);
data8_t cpu_readmem32bedw (offs_t offset); data16_t cpu_readmem32bedw_word (offs_t offset); data32_t cpu_readmem32bedw_dword (offs_t offset); void cpu_writemem32bedw (offs_t offset, data8_t data); void cpu_writemem32bedw_word (offs_t offset, data16_t data); void cpu_writemem32bedw_dword(offs_t offset, data32_t data); void cpu_setopbase32bedw (offs_t pc);
data8_t cpu_readmem26ledw (offs_t offset); data16_t cpu_readmem26ledw_word (offs_t offset); data32_t cpu_readmem26ledw_dword (offs_t offset); void cpu_writemem26ledw (offs_t offset, data8_t data); void cpu_writemem26ledw_word (offs_t offset, data16_t data); void cpu_writemem26ledw_dword(offs_t offset, data32_t data); void cpu_setopbase26ledw (offs_t pc);
data8_t cpu_readmem29ledw (offs_t offset); data16_t cpu_readmem29ledw_word (offs_t offset); data32_t cpu_readmem29ledw_dword (offs_t offset); void cpu_writemem29ledw (offs_t offset, data8_t data); void cpu_writemem29ledw_word (offs_t offset, data16_t data); void cpu_writemem29ledw_dword(offs_t offset, data32_t data); void cpu_setopbase29ledw (offs_t pc);
data8_t cpu_readmem32ledw (offs_t offset); data16_t cpu_readmem32ledw_word (offs_t offset); data32_t cpu_readmem32ledw_dword (offs_t offset); void cpu_writemem32ledw (offs_t offset, data8_t data); void cpu_writemem32ledw_word (offs_t offset, data16_t data); void cpu_writemem32ledw_dword(offs_t offset, data32_t data); void cpu_setopbase32ledw (offs_t pc);
data8_t cpu_readmem18bedw (offs_t offset); data16_t cpu_readmem18bedw_word (offs_t offset); data32_t cpu_readmem18bedw_dword (offs_t offset); void cpu_writemem18bedw (offs_t offset, data8_t data); void cpu_writemem18bedw_word (offs_t offset, data16_t data); void cpu_writemem18bedw_dword(offs_t offset, data32_t data); void cpu_setopbase18bedw (offs_t pc);
# 718 "src/memory.h"
data8_t cpu_readport16 (offs_t offset);
void cpu_writeport16 (offs_t offset, data8_t data);
data8_t cpu_readport16lew (offs_t offset);
void cpu_writeport16lew (offs_t offset, data8_t data);
data16_t cpu_readport16lew_word (offs_t offset);
void cpu_writeport16lew_word (offs_t offset, data16_t data);
data8_t cpu_readport16bew (offs_t offset);
void cpu_writeport16bew (offs_t offset, data8_t data);
data16_t cpu_readport16bew_word (offs_t offset);
void cpu_writeport16bew_word (offs_t offset, data16_t data);
data8_t cpu_readport16ledw (offs_t offset);
void cpu_writeport16ledw (offs_t offset, data8_t data);
data16_t cpu_readport16ledw_word (offs_t offset);
void cpu_writeport16lew_word (offs_t offset, data16_t data);
data32_t cpu_readport16lew_dword (offs_t offset);
void cpu_writeport16lew_dword (offs_t offset, data32_t data);
data8_t cpu_readport16bedw (offs_t offset);
void cpu_writeport16bedw (offs_t offset, data8_t data);
data16_t cpu_readport16bedw_word (offs_t offset);
void cpu_writeport16bedw_word (offs_t offset, data16_t data);
data32_t cpu_readport16bedw_dword (offs_t offset);
void cpu_writeport16bedw_dword (offs_t offset, data32_t data);
# 756 "src/memory.h"
int memory_init(void);
void memory_shutdown(void);
void memory_set_context(int activecpu);
void memory_set_bankhandler_r(int bank, offs_t offset, mem_read_handler handler);
void memory_set_bankhandler_w(int bank, offs_t offset, mem_write_handler handler);
opbase_handler memory_set_opbase_handler(int cpu, opbase_handler function);
void memory_set_opcode_base(int cpu, void *base);
void memory_set_encrypted_opcode_range(int cpu, offs_t min_address,offs_t max_address);
extern offs_t encrypted_opcode_start[],encrypted_opcode_end[];
void * memory_find_base(int cpu, offs_t offset);
data8_t * install_mem_read_handler (int cpu, offs_t start, offs_t end, mem_read_handler handler);
data16_t * install_mem_read16_handler (int cpu, offs_t start, offs_t end, mem_read16_handler handler);
data32_t * install_mem_read32_handler (int cpu, offs_t start, offs_t end, mem_read32_handler handler);
data8_t * install_mem_write_handler (int cpu, offs_t start, offs_t end, mem_write_handler handler);
data16_t * install_mem_write16_handler (int cpu, offs_t start, offs_t end, mem_write16_handler handler);
data32_t * install_mem_write32_handler (int cpu, offs_t start, offs_t end, mem_write32_handler handler);
void install_port_read_handler (int cpu, offs_t start, offs_t end, port_read_handler handler);
void install_port_read16_handler (int cpu, offs_t start, offs_t end, port_read16_handler handler);
void install_port_read32_handler (int cpu, offs_t start, offs_t end, port_read32_handler handler);
void install_port_write_handler (int cpu, offs_t start, offs_t end, port_write_handler handler);
void install_port_write16_handler(int cpu, offs_t start, offs_t end, port_write16_handler handler);
void install_port_write32_handler(int cpu, offs_t start, offs_t end, port_write32_handler handler);
# 799 "src/memory.h"
extern UINT8 opcode_entry;
extern UINT8 * OP_ROM;
extern UINT8 * OP_RAM;
extern UINT8 * cpu_bankbase[];
extern UINT8 * readmem_lookup;
extern offs_t memory_amask;
extern struct ExtMemory ext_memory[];
# 6 "src/driver.h" 2
# 1 "src/mamedbg.h" 1
# 1 "src/mame.h" 1
# 1 "src/osdepend.h" 1
# 1 "src/unix/osd_cpu.h" 1
# 5 "src/osdepend.h" 2
# 1 "src/inptport.h" 1
# 1 "src/memory.h" 1
# 5 "src/inptport.h" 2
# 1 "src/input.h" 1
typedef unsigned InputCode;
struct KeyboardInfo
{
char *name;
unsigned code;
InputCode standardcode;
};
struct JoystickInfo
{
char *name;
unsigned code;
InputCode standardcode;
};
enum
{
KEYCODE_A, KEYCODE_B, KEYCODE_C, KEYCODE_D, KEYCODE_E, KEYCODE_F,
KEYCODE_G, KEYCODE_H, KEYCODE_I, KEYCODE_J, KEYCODE_K, KEYCODE_L,
KEYCODE_M, KEYCODE_N, KEYCODE_O, KEYCODE_P, KEYCODE_Q, KEYCODE_R,
KEYCODE_S, KEYCODE_T, KEYCODE_U, KEYCODE_V, KEYCODE_W, KEYCODE_X,
KEYCODE_Y, KEYCODE_Z, KEYCODE_0, KEYCODE_1, KEYCODE_2, KEYCODE_3,
KEYCODE_4, KEYCODE_5, KEYCODE_6, KEYCODE_7, KEYCODE_8, KEYCODE_9,
KEYCODE_0_PAD, KEYCODE_1_PAD, KEYCODE_2_PAD, KEYCODE_3_PAD, KEYCODE_4_PAD,
KEYCODE_5_PAD, KEYCODE_6_PAD, KEYCODE_7_PAD, KEYCODE_8_PAD, KEYCODE_9_PAD,
KEYCODE_F1, KEYCODE_F2, KEYCODE_F3, KEYCODE_F4, KEYCODE_F5,
KEYCODE_F6, KEYCODE_F7, KEYCODE_F8, KEYCODE_F9, KEYCODE_F10,
KEYCODE_F11, KEYCODE_F12,
KEYCODE_ESC, KEYCODE_TILDE, KEYCODE_MINUS, KEYCODE_EQUALS, KEYCODE_BACKSPACE,
KEYCODE_TAB, KEYCODE_OPENBRACE, KEYCODE_CLOSEBRACE, KEYCODE_ENTER, KEYCODE_COLON,
KEYCODE_QUOTE, KEYCODE_BACKSLASH, KEYCODE_BACKSLASH2, KEYCODE_COMMA, KEYCODE_STOP,
KEYCODE_SLASH, KEYCODE_SPACE, KEYCODE_INSERT, KEYCODE_DEL,
KEYCODE_HOME, KEYCODE_END, KEYCODE_PGUP, KEYCODE_PGDN, KEYCODE_LEFT,
KEYCODE_RIGHT, KEYCODE_UP, KEYCODE_DOWN,
KEYCODE_SLASH_PAD, KEYCODE_ASTERISK, KEYCODE_MINUS_PAD, KEYCODE_PLUS_PAD,
KEYCODE_DEL_PAD, KEYCODE_ENTER_PAD, KEYCODE_PRTSCR, KEYCODE_PAUSE,
KEYCODE_LSHIFT, KEYCODE_RSHIFT, KEYCODE_LCONTROL, KEYCODE_RCONTROL,
KEYCODE_LALT, KEYCODE_RALT, KEYCODE_SCRLOCK, KEYCODE_NUMLOCK, KEYCODE_CAPSLOCK,
KEYCODE_LWIN, KEYCODE_RWIN, KEYCODE_MENU,
JOYCODE_1_LEFT,JOYCODE_1_RIGHT,JOYCODE_1_UP,JOYCODE_1_DOWN,
JOYCODE_1_BUTTON1,JOYCODE_1_BUTTON2,JOYCODE_1_BUTTON3,
JOYCODE_1_BUTTON4,JOYCODE_1_BUTTON5,JOYCODE_1_BUTTON6,
JOYCODE_2_LEFT,JOYCODE_2_RIGHT,JOYCODE_2_UP,JOYCODE_2_DOWN,
JOYCODE_2_BUTTON1,JOYCODE_2_BUTTON2,JOYCODE_2_BUTTON3,
JOYCODE_2_BUTTON4,JOYCODE_2_BUTTON5,JOYCODE_2_BUTTON6,
JOYCODE_3_LEFT,JOYCODE_3_RIGHT,JOYCODE_3_UP,JOYCODE_3_DOWN,
JOYCODE_3_BUTTON1,JOYCODE_3_BUTTON2,JOYCODE_3_BUTTON3,
JOYCODE_3_BUTTON4,JOYCODE_3_BUTTON5,JOYCODE_3_BUTTON6,
JOYCODE_4_LEFT,JOYCODE_4_RIGHT,JOYCODE_4_UP,JOYCODE_4_DOWN,
JOYCODE_4_BUTTON1,JOYCODE_4_BUTTON2,JOYCODE_4_BUTTON3,
JOYCODE_4_BUTTON4,JOYCODE_4_BUTTON5,JOYCODE_4_BUTTON6,
__code_max,
CODE_NONE = 0x8000,
CODE_OTHER,
CODE_DEFAULT,
CODE_PREVIOUS,
CODE_NOT,
CODE_OR
};
# 84 "src/input.h"
int code_init(void);
void code_close(void);
InputCode keyoscode_to_code(unsigned oscode);
InputCode joyoscode_to_code(unsigned oscode);
InputCode savecode_to_code(unsigned savecode);
unsigned code_to_savecode(InputCode code);
const char *code_name(InputCode code);
int code_pressed(InputCode code);
int code_pressed_memory(InputCode code);
int code_pressed_memory_repeat(InputCode code, int speed);
InputCode code_read_async(void);
INT8 code_read_hex_async(void);
# 112 "src/input.h"
typedef InputCode InputSeq[16];
static __inline__ InputCode seq_get_1(InputSeq* a) {
return (*a)[0];
}
void seq_set_0(InputSeq* seq);
void seq_set_1(InputSeq* seq, InputCode code);
void seq_set_2(InputSeq* seq, InputCode code1, InputCode code2);
void seq_set_3(InputSeq* seq, InputCode code1, InputCode code2, InputCode code3);
void seq_copy(InputSeq* seqdst, InputSeq* seqsrc);
int seq_cmp(InputSeq* seq1, InputSeq* seq2);
void seq_name(InputSeq* seq, char* buffer, unsigned max);
int seq_pressed(InputSeq* seq);
void seq_read_async_start(void);
int seq_read_async(InputSeq* code, int first);
# 141 "src/input.h"
int input_ui_pressed(int code);
int input_ui_pressed_repeat(int code, int speed);
# 6 "src/inptport.h" 2
# 19 "src/inptport.h"
struct InputPortTiny
{
UINT16 mask;
UINT16 default_value;
UINT32 type;
const char *name;
};
struct InputPort
{
UINT16 mask;
UINT16 default_value;
UINT32 type;
const char *name;
InputSeq seq;
};
enum { IPT_END=1,IPT_PORT,
IPT_JOYSTICK_UP, IPT_JOYSTICK_DOWN, IPT_JOYSTICK_LEFT, IPT_JOYSTICK_RIGHT,
IPT_JOYSTICKRIGHT_UP, IPT_JOYSTICKRIGHT_DOWN, IPT_JOYSTICKRIGHT_LEFT, IPT_JOYSTICKRIGHT_RIGHT,
IPT_JOYSTICKLEFT_UP, IPT_JOYSTICKLEFT_DOWN, IPT_JOYSTICKLEFT_LEFT, IPT_JOYSTICKLEFT_RIGHT,
IPT_BUTTON1, IPT_BUTTON2, IPT_BUTTON3, IPT_BUTTON4,
IPT_BUTTON5, IPT_BUTTON6, IPT_BUTTON7, IPT_BUTTON8, IPT_BUTTON9, IPT_BUTTON10,
IPT_ANALOG_START,
IPT_PADDLE, IPT_PADDLE_V,
IPT_DIAL, IPT_DIAL_V,
IPT_TRACKBALL_X, IPT_TRACKBALL_Y,
IPT_AD_STICK_X, IPT_AD_STICK_Y,
IPT_PEDAL,
IPT_ANALOG_END,
IPT_START1, IPT_START2, IPT_START3, IPT_START4,
IPT_COIN1, IPT_COIN2, IPT_COIN3, IPT_COIN4,
IPT_SERVICE1, IPT_SERVICE2, IPT_SERVICE3, IPT_SERVICE4,
IPT_SERVICE, IPT_TILT,
IPT_DIPSWITCH_NAME, IPT_DIPSWITCH_SETTING,
IPT_VBLANK,
IPT_UNKNOWN,
IPT_EXTENSION,
IPT_UI_CONFIGURE,
IPT_UI_ON_SCREEN_DISPLAY,
IPT_UI_PAUSE,
IPT_UI_RESET_MACHINE,
IPT_UI_SHOW_GFX,
IPT_UI_FRAMESKIP_DEC,
IPT_UI_FRAMESKIP_INC,
IPT_UI_THROTTLE,
IPT_UI_SHOW_FPS,
IPT_UI_SNAPSHOT,
IPT_UI_TOGGLE_CHEAT,
IPT_UI_UP,
IPT_UI_DOWN,
IPT_UI_LEFT,
IPT_UI_RIGHT,
IPT_UI_SELECT,
IPT_UI_CANCEL,
IPT_UI_PAN_UP, IPT_UI_PAN_DOWN, IPT_UI_PAN_LEFT, IPT_UI_PAN_RIGHT,
IPT_UI_SHOW_PROFILER,
IPT_UI_SHOW_COLORS,
IPT_UI_TOGGLE_UI,
IPT_UI_TOGGLE_DEBUG,
IPT_UI_SAVE_STATE,
IPT_UI_LOAD_STATE,
__ipt_max
};
# 235 "src/inptport.h"
extern char ipdn_defaultstrings[][20];
enum {
STR_Off,
STR_On,
STR_No,
STR_Yes,
STR_Lives,
STR_Bonus_Life,
STR_Difficulty,
STR_Demo_Sounds,
STR_Coinage,
STR_Coin_A,
STR_Coin_B,
STR_9C_1C,
STR_8C_1C,
STR_7C_1C,
STR_6C_1C,
STR_5C_1C,
STR_4C_1C,
STR_3C_1C,
STR_8C_3C,
STR_4C_2C,
STR_2C_1C,
STR_5C_3C,
STR_3C_2C,
STR_4C_3C,
STR_4C_4C,
STR_3C_3C,
STR_2C_2C,
STR_1C_1C,
STR_4C_5C,
STR_3C_4C,
STR_2C_3C,
STR_4C_7C,
STR_2C_4C,
STR_1C_2C,
STR_2C_5C,
STR_2C_6C,
STR_1C_3C,
STR_2C_7C,
STR_2C_8C,
STR_1C_4C,
STR_1C_5C,
STR_1C_6C,
STR_1C_7C,
STR_1C_8C,
STR_1C_9C,
STR_Free_Play,
STR_Cabinet,
STR_Upright,
STR_Cocktail,
STR_Flip_Screen,
STR_Service_Mode,
STR_Unused,
STR_Unknown,
STR_TOTAL
};
int load_input_port_settings(void);
void save_input_port_settings(void);
const char *input_port_name(const struct InputPort *in);
InputSeq* input_port_type_seq(int type);
InputSeq* input_port_seq(const struct InputPort *in);
struct InputPort* input_port_allocate(const struct InputPortTiny *src);
void input_port_free(struct InputPort* dst);
void update_analog_port(int port);
void update_input_ports(void);
void inputport_vblank_end(void);
int readinputport(int port);
data8_t input_port_0_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_1_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_2_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_3_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_4_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_5_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_6_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_7_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_8_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_9_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_10_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_11_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_12_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_13_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_14_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_15_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_16_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_17_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_18_r(offs_t offset __attribute__((__unused__)));
data8_t input_port_19_r(offs_t offset __attribute__((__unused__)));
data16_t input_port_0_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_1_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_2_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_3_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_4_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_5_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_6_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_7_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_8_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_9_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_10_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_11_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_12_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_13_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_14_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_15_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_16_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_17_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_18_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t input_port_19_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
struct ipd
{
UINT32 type;
const char *name;
InputSeq seq;
};
# 6 "src/osdepend.h" 2
# 23 "src/osdepend.h"
int osd_init(void);
void osd_exit(void);
# 33 "src/osdepend.h"
struct osd_bitmap
{
int width,height;
int depth;
void *_private;
UINT8 **line;
};
struct osd_bitmap *osd_alloc_bitmap(int width,int height,int depth);
void osd_free_bitmap(struct osd_bitmap *bitmap);
# 69 "src/osdepend.h"
int osd_create_display(int width,int height,int depth,int fps,int attributes,int orientation);
void osd_close_display(void);
# 87 "src/osdepend.h"
void osd_set_visible_area(int min_x,int max_x,int min_y,int max_y);
# 117 "src/osdepend.h"
int osd_allocate_colors(unsigned int totalcolors,
const UINT8 *palette,UINT32 *pens,int modifiable,
const UINT8 *debug_palette,UINT32 *debug_pens);
void osd_modify_pen(int pen,unsigned char red, unsigned char green, unsigned char blue);
void osd_get_pen(int pen,unsigned char *red, unsigned char *green, unsigned char *blue);
void osd_mark_dirty(int xmin,int ymin,int xmax,int ymax);
# 135 "src/osdepend.h"
int osd_skip_this_frame(void);
# 150 "src/osdepend.h"
void osd_update_video_and_audio(
struct osd_bitmap *game_bitmap,struct osd_bitmap *debug_bitmap,int leds_status);
void osd_debugger_focus(int debugger_has_focus);
void osd_set_gamma(float _gamma);
float osd_get_gamma(void);
void osd_set_brightness(int brightness);
int osd_get_brightness(void);
# 168 "src/osdepend.h"
void osd_save_snapshot(struct osd_bitmap *bitmap);
# 197 "src/osdepend.h"
int osd_start_audio_stream(int stereo);
int osd_update_audio_stream(INT16 *buffer);
void osd_stop_audio_stream(void);
# 208 "src/osdepend.h"
void osd_set_mastervolume(int attenuation);
int osd_get_mastervolume(void);
void osd_sound_enable(int enable);
void osd_opl_control(int chip,int reg);
void osd_opl_write(int chip,int data);
# 227 "src/osdepend.h"
const struct KeyboardInfo *osd_get_key_list(void);
int osd_is_key_pressed(int keycode);
# 244 "src/osdepend.h"
int osd_readkey_unicode(int flush);
# 256 "src/osdepend.h"
const struct JoystickInfo *osd_get_joy_list(void);
int osd_is_joy_pressed(int joycode);
# 273 "src/osdepend.h"
int osd_joystick_needs_calibration (void);
void osd_joystick_start_calibration (void);
const char *osd_joystick_calibrate_next (void);
void osd_joystick_calibrate (void);
void osd_joystick_end_calibration (void);
void osd_trak_read(int player,int *deltax,int *deltay);
void osd_analogjoy_read(int player,int *analog_x, int *analog_y);
# 299 "src/osdepend.h"
void osd_customize_inputport_defaults(struct ipd *defaults);
# 309 "src/osdepend.h"
typedef struct
{
char name[9];
char version[3];
char reserved[20];
} INP_HEADER;
enum
{
OSD_FILETYPE_ROM = 1,
OSD_FILETYPE_SAMPLE,
OSD_FILETYPE_NVRAM,
OSD_FILETYPE_HIGHSCORE,
OSD_FILETYPE_HIGHSCORE_DB,
OSD_FILETYPE_CONFIG,
OSD_FILETYPE_INPUTLOG,
OSD_FILETYPE_STATE,
OSD_FILETYPE_ARTWORK,
OSD_FILETYPE_MEMCARD,
OSD_FILETYPE_SCREENSHOT,
OSD_FILETYPE_HISTORY,
OSD_FILETYPE_CHEAT,
OSD_FILETYPE_LANGUAGE,
OSD_FILETYPE_end
};
int osd_faccess(const char *filename, int filetype);
void *osd_fopen(const char *gamename,const char *filename,int filetype,int read_or_write);
int osd_fread(void *file,void *buffer,int length);
int osd_fwrite(void *file,const void *buffer,int length);
int osd_fread_swap(void *file,void *buffer,int length);
int osd_fwrite_swap(void *file,const void *buffer,int length);
# 362 "src/osdepend.h"
int osd_fread_scatter(void *file,void *buffer,int length,int increment);
int osd_fseek(void *file,int offset,int whence);
void osd_fclose(void *file);
int osd_fchecksum(const char *gamename, const char *filename, unsigned int *length, unsigned int *sum);
int osd_fsize(void *file);
unsigned int osd_fcrc(void *file);
int osd_fgetc(void *file);
int osd_ungetc(int c, void *file);
char *osd_fgets(char *s, int n, void *file);
int osd_feof(void *file);
int osd_ftell(void *file);
# 385 "src/osdepend.h"
int osd_display_loading_rom_message(const char *name,int current,int total);
void osd_pause(int paused);
# 414 "src/osdepend.h"
void logerror(const char *text,...);
# 5 "src/mame.h" 2
# 1 "src/drawgfx.h" 1
# 30 "src/drawgfx.h"
struct GfxLayout
{
UINT16 width,height;
UINT32 total;
UINT16 planes;
UINT32 planeoffset[8];
UINT32 xoffset[64];
UINT32 yoffset[64];
UINT16 charincrement;
};
struct GfxElement
{
int width,height;
unsigned int total_elements;
int color_granularity;
UINT32 *colortable;
int total_colors;
UINT32 *pen_usage;
UINT8 *gfxdata;
int line_modulo;
int char_modulo;
int flags;
};
struct GfxDecodeInfo
{
int memory_region;
int start;
struct GfxLayout *gfxlayout;
int color_codes_start;
int total_color_codes;
};
struct rectangle
{
int min_x,max_x;
int min_y,max_y;
};
struct _alpha_cache {
const UINT8 *alphas;
const UINT8 *alphad;
UINT8 alpha[0x101][0x100];
};
extern struct _alpha_cache alpha_cache;
enum
{
TRANSPARENCY_NONE,
TRANSPARENCY_NONE_RAW,
TRANSPARENCY_PEN,
TRANSPARENCY_PEN_RAW,
TRANSPARENCY_PENS,
TRANSPARENCY_PENS_RAW,
TRANSPARENCY_COLOR,
TRANSPARENCY_PEN_TABLE,
TRANSPARENCY_PEN_TABLE_RAW,
TRANSPARENCY_BLEND,
TRANSPARENCY_BLEND_RAW,
TRANSPARENCY_ALPHAONE,
TRANSPARENCY_ALPHA,
TRANSPARENCY_MODES
};
extern UINT8 gfx_drawmode_table[256];
enum
{
DRAWMODE_NONE,
DRAWMODE_SOURCE,
DRAWMODE_SHADOW
};
typedef void (*plot_pixel_proc)(struct osd_bitmap *bitmap,int x,int y,UINT32 pen);
typedef int (*read_pixel_proc)(struct osd_bitmap *bitmap,int x,int y);
typedef void (*plot_box_proc)(struct osd_bitmap *bitmap,int x,int y,int width,int height,UINT32 pen);
typedef void (*mark_dirty_proc)(int sx,int sy,int ex,int ey);
extern plot_pixel_proc plot_pixel;
extern read_pixel_proc read_pixel;
extern plot_box_proc plot_box;
extern mark_dirty_proc mark_dirty;
void decodechar(struct GfxElement *gfx,int num,const unsigned char *src,const struct GfxLayout *gl);
struct GfxElement *decodegfx(const unsigned char *src,const struct GfxLayout *gl);
void set_pixel_functions(void);
void freegfx(struct GfxElement *gfx);
void drawgfx(struct osd_bitmap *dest,const struct GfxElement *gfx,
unsigned int code,unsigned int color,int flipx,int flipy,int sx,int sy,
const struct rectangle *clip,int transparency,int transparent_color);
void pdrawgfx(struct osd_bitmap *dest,const struct GfxElement *gfx,
unsigned int code,unsigned int color,int flipx,int flipy,int sx,int sy,
const struct rectangle *clip,int transparency,int transparent_color,
UINT32 priority_mask);
void mdrawgfx(struct osd_bitmap *dest,const struct GfxElement *gfx,
unsigned int code,unsigned int color,int flipx,int flipy,int sx,int sy,
const struct rectangle *clip,int transparency,int transparent_color,
UINT32 priority_mask);
void copybitmap(struct osd_bitmap *dest,struct osd_bitmap *src,int flipx,int flipy,int sx,int sy,
const struct rectangle *clip,int transparency,int transparent_color);
void copybitmap_remap(struct osd_bitmap *dest,struct osd_bitmap *src,int flipx,int flipy,int sx,int sy,
const struct rectangle *clip,int transparency,int transparent_color);
void copyscrollbitmap(struct osd_bitmap *dest,struct osd_bitmap *src,
int rows,const int *rowscroll,int cols,const int *colscroll,
const struct rectangle *clip,int transparency,int transparent_color);
void copyscrollbitmap_remap(struct osd_bitmap *dest,struct osd_bitmap *src,
int rows,const int *rowscroll,int cols,const int *colscroll,
const struct rectangle *clip,int transparency,int transparent_color);
void draw_scanline8(struct osd_bitmap *bitmap,int x,int y,int length,UINT8 *src,UINT32 *pens,int transparent_pen);
void draw_scanline16(struct osd_bitmap *bitmap,int x,int y,int length,UINT16 *src,UINT32 *pens,int transparent_pen);
void pdraw_scanline8(struct osd_bitmap *bitmap,int x,int y,int length,UINT8 *src,UINT32 *pens,int transparent_pen,UINT32 orient,int pri);
void pdraw_scanline16(struct osd_bitmap *bitmap,int x,int y,int length,UINT16 *src,UINT32 *pens,int transparent_pen,UINT32 orient,int pri);
extern int alpha_active;
void alpha_init(void);
static __inline__ void alpha_set_level(int level) {
if(level == 0)
level = -1;
alpha_cache.alphas = alpha_cache.alpha[level+1];
alpha_cache.alphad = alpha_cache.alpha[255-level];
}
static __inline__ UINT32 alpha_blend16( UINT32 d, UINT32 s )
{
const UINT8 *alphas = alpha_cache.alphas;
const UINT8 *alphad = alpha_cache.alphad;
return (alphas[s & 0x1f] | (alphas[(s>>5) & 0x1f] << 5) | (alphas[(s>>10) & 0x1f] << 10))
+ (alphad[d & 0x1f] | (alphad[(d>>5) & 0x1f] << 5) | (alphad[(d>>10) & 0x1f] << 10));
}
static __inline__ UINT32 alpha_blend32( UINT32 d, UINT32 s )
{
const UINT8 *alphas = alpha_cache.alphas;
const UINT8 *alphad = alpha_cache.alphad;
return (alphas[s & 0xff] | (alphas[(s>>8) & 0xff] << 8) | (alphas[(s>>16) & 0xff] << 16))
+ (alphad[d & 0xff] | (alphad[(d>>8) & 0xff] << 8) | (alphad[(d>>16) & 0xff] << 16));
}
# 219 "src/drawgfx.h"
void copyrozbitmap(struct osd_bitmap *dest,struct osd_bitmap *src,
UINT32 startx,UINT32 starty,int incxx,int incxy,int incyx,int incyy,int wraparound,
const struct rectangle *clip,int transparency,int transparent_color,UINT32 priority);
void fillbitmap(struct osd_bitmap *dest,int pen,const struct rectangle *clip);
void plot_pixel2(struct osd_bitmap *bitmap1,struct osd_bitmap *bitmap2,int x,int y,int pen);
void drawgfxzoom( struct osd_bitmap *dest_bmp,const struct GfxElement *gfx,
unsigned int code,unsigned int color,int flipx,int flipy,int sx,int sy,
const struct rectangle *clip,int transparency,int transparent_color,int scalex,int scaley);
void pdrawgfxzoom( struct osd_bitmap *dest_bmp,const struct GfxElement *gfx,
unsigned int code,unsigned int color,int flipx,int flipy,int sx,int sy,
const struct rectangle *clip,int transparency,int transparent_color,int scalex,int scaley,
UINT32 priority_mask);
void mdrawgfxzoom( struct osd_bitmap *dest_bmp,const struct GfxElement *gfx,
unsigned int code,unsigned int color,int flipx,int flipy,int sx,int sy,
const struct rectangle *clip,int transparency,int transparent_color,int scalex,int scaley,
UINT32 priority_mask);
void draw_crosshair(struct osd_bitmap *bitmap,int x,int y,const struct rectangle *clip);
# 6 "src/mame.h" 2
# 1 "/usr/include/stdio.h" 1 3
# 27 "/usr/include/stdio.h" 3
# 1 "/usr/include/features.h" 1 3
# 28 "/usr/include/stdio.h" 2 3
# 1 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stddef.h" 1 3
# 34 "/usr/include/stdio.h" 2 3
# 1 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stdarg.h" 1 3
# 43 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stdarg.h" 3
typedef __builtin_va_list __gnuc_va_list;
# 39 "/usr/include/stdio.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 41 "/usr/include/stdio.h" 2 3
# 49 "/usr/include/stdio.h" 3
typedef struct _IO_FILE FILE;
# 59 "/usr/include/stdio.h" 3
typedef struct _IO_FILE __FILE;
# 69 "/usr/include/stdio.h" 3
# 1 "/usr/include/libio.h" 1 3
# 30 "/usr/include/libio.h" 3
# 1 "/usr/include/_G_config.h" 1 3
# 9 "/usr/include/_G_config.h" 3
# 1 "/usr/include/bits/types.h" 1 3
# 10 "/usr/include/_G_config.h" 2 3
# 1 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stddef.h" 1 3
# 314 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stddef.h" 3
typedef unsigned int wint_t;
# 15 "/usr/include/_G_config.h" 2 3
# 24 "/usr/include/_G_config.h" 3
# 1 "/usr/include/wchar.h" 1 3
# 45 "/usr/include/wchar.h" 3
# 1 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stddef.h" 1 3
# 46 "/usr/include/wchar.h" 2 3
# 1 "/usr/include/bits/wchar.h" 1 3
# 48 "/usr/include/wchar.h" 2 3
# 64 "/usr/include/wchar.h" 3
typedef struct
{
int __count;
union
{
wint_t __wch;
char __wchb[4];
} __value;
} __mbstate_t;
# 25 "/usr/include/_G_config.h" 2 3
typedef struct
{
__off_t __pos;
__mbstate_t __state;
} _G_fpos_t;
typedef struct
{
__off64_t __pos;
__mbstate_t __state;
} _G_fpos64_t;
# 44 "/usr/include/_G_config.h" 3
# 1 "/usr/include/gconv.h" 1 3
# 26 "/usr/include/gconv.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/gconv.h" 2 3
# 1 "/usr/include/wchar.h" 1 3
# 45 "/usr/include/wchar.h" 3
# 1 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stddef.h" 1 3
# 46 "/usr/include/wchar.h" 2 3
# 1 "/usr/include/bits/wchar.h" 1 3
# 48 "/usr/include/wchar.h" 2 3
# 29 "/usr/include/gconv.h" 2 3
# 1 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stddef.h" 1 3
# 31 "/usr/include/gconv.h" 2 3
enum
{
__GCONV_OK = 0,
__GCONV_NOCONV,
__GCONV_NODB,
__GCONV_NOMEM,
__GCONV_EMPTY_INPUT,
__GCONV_FULL_OUTPUT,
__GCONV_ILLEGAL_INPUT,
__GCONV_INCOMPLETE_INPUT,
__GCONV_ILLEGAL_DESCRIPTOR,
__GCONV_INTERNAL_ERROR
};
enum
{
__GCONV_IS_LAST = 0x0001,
__GCONV_IGNORE_ERRORS = 0x0002
};
struct __gconv_step;
struct __gconv_step_data;
struct __gconv_loaded_object;
struct __gconv_trans_data;
typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *,
__const unsigned char **, __const unsigned char *,
unsigned char **, size_t *, int, int);
typedef int (*__gconv_init_fct) (struct __gconv_step *);
typedef void (*__gconv_end_fct) (struct __gconv_step *);
typedef int (*__gconv_trans_fct) (struct __gconv_step *,
struct __gconv_step_data *, void *,
__const unsigned char *,
__const unsigned char **,
__const unsigned char *, unsigned char **,
size_t *);
typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,
__const unsigned char *,
unsigned char *, unsigned char *);
typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,
size_t *);
typedef int (*__gconv_trans_init_fct) (void **, const char *);
typedef void (*__gconv_trans_end_fct) (void *);
struct __gconv_trans_data
{
__gconv_trans_fct __trans_fct;
__gconv_trans_context_fct __trans_context_fct;
__gconv_trans_end_fct __trans_end_fct;
void *__data;
struct __gconv_trans_data *__next;
};
struct __gconv_step
{
struct __gconv_loaded_object *__shlib_handle;
__const char *__modname;
int __counter;
__const char *__from_name;
__const char *__to_name;
__gconv_fct __fct;
__gconv_init_fct __init_fct;
__gconv_end_fct __end_fct;
int __min_needed_from;
int __max_needed_from;
int __min_needed_to;
int __max_needed_to;
int __stateful;
void *__data;
};
struct __gconv_step_data
{
unsigned char *__outbuf;
unsigned char *__outbufend;
int __flags;
int __invocation_counter;
int __internal_use;
__mbstate_t *__statep;
__mbstate_t __state;
struct __gconv_trans_data *__trans;
};
typedef struct __gconv_info
{
size_t __nsteps;
struct __gconv_step *__steps;
__extension__ struct __gconv_step_data __data[0];
} *__gconv_t;
# 45 "/usr/include/_G_config.h" 2 3
typedef union
{
struct __gconv_info __cd;
struct
{
struct __gconv_info __cd;
struct __gconv_step_data __data;
} __combined;
} _G_iconv_t;
typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
# 31 "/usr/include/libio.h" 2 3
# 51 "/usr/include/libio.h" 3
# 1 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stdarg.h" 1 3
# 52 "/usr/include/libio.h" 2 3
# 158 "/usr/include/libio.h" 3
struct _IO_jump_t; struct _IO_FILE;
# 168 "/usr/include/libio.h" 3
typedef void _IO_lock_t;
struct _IO_marker {
struct _IO_marker *_next;
struct _IO_FILE *_sbuf;
int _pos;
# 191 "/usr/include/libio.h" 3
};
enum __codecvt_result
{
__codecvt_ok,
__codecvt_partial,
__codecvt_error,
__codecvt_noconv
};
# 263 "/usr/include/libio.h" 3
struct _IO_FILE {
int _flags;
char* _IO_read_ptr;
char* _IO_read_end;
char* _IO_read_base;
char* _IO_write_base;
char* _IO_write_ptr;
char* _IO_write_end;
char* _IO_buf_base;
char* _IO_buf_end;
char *_IO_save_base;
char *_IO_backup_base;
char *_IO_save_end;
struct _IO_marker *_markers;
struct _IO_FILE *_chain;
int _fileno;
int _blksize;
__off_t _old_offset;
unsigned short _cur_column;
signed char _vtable_offset;
char _shortbuf[1];
_IO_lock_t *_lock;
# 307 "/usr/include/libio.h" 3
__off64_t _offset;
void *__pad1;
void *__pad2;
int _mode;
char _unused2[15 * sizeof (int) - 2 * sizeof (void *)];
};
typedef struct _IO_FILE _IO_FILE;
struct _IO_FILE_plus;
extern struct _IO_FILE_plus _IO_2_1_stdin_;
extern struct _IO_FILE_plus _IO_2_1_stdout_;
extern struct _IO_FILE_plus _IO_2_1_stderr_;
# 346 "/usr/include/libio.h" 3
typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
size_t __n);
typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
typedef int __io_close_fn (void *__cookie);
# 398 "/usr/include/libio.h" 3
extern int __underflow (_IO_FILE *) ;
extern int __uflow (_IO_FILE *) ;
extern int __overflow (_IO_FILE *, int) ;
extern wint_t __wunderflow (_IO_FILE *) ;
extern wint_t __wuflow (_IO_FILE *) ;
extern wint_t __woverflow (_IO_FILE *, wint_t) ;
# 428 "/usr/include/libio.h" 3
extern int _IO_getc (_IO_FILE *__fp) ;
extern int _IO_putc (int __c, _IO_FILE *__fp) ;
extern int _IO_feof (_IO_FILE *__fp) ;
extern int _IO_ferror (_IO_FILE *__fp) ;
extern int _IO_peekc_locked (_IO_FILE *__fp) ;
extern void _IO_flockfile (_IO_FILE *) ;
extern void _IO_funlockfile (_IO_FILE *) ;
extern int _IO_ftrylockfile (_IO_FILE *) ;
# 458 "/usr/include/libio.h" 3
extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
__gnuc_va_list, int *__restrict) ;
extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
__gnuc_va_list) ;
extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) ;
extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) ;
extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) ;
extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) ;
extern void _IO_free_backup_area (_IO_FILE *) ;
# 70 "/usr/include/stdio.h" 2 3
typedef _G_fpos_t fpos_t;
# 122 "/usr/include/stdio.h" 3
# 1 "/usr/include/bits/stdio_lim.h" 1 3
# 123 "/usr/include/stdio.h" 2 3
extern FILE *stdin;
extern FILE *stdout;
extern FILE *stderr;
extern int remove (__const char *__filename) ;
extern int rename (__const char *__old, __const char *__new) ;
extern FILE *tmpfile (void) ;
# 154 "/usr/include/stdio.h" 3
extern char *tmpnam (char *__s) ;
extern char *tmpnam_r (char *__s) ;
# 171 "/usr/include/stdio.h" 3
extern char *tempnam (__const char *__dir, __const char *__pfx)
__attribute__ ((__malloc__));
extern int fclose (FILE *__stream) ;
extern int fflush (FILE *__stream) ;
extern int fflush_unlocked (FILE *__stream) ;
# 194 "/usr/include/stdio.h" 3
extern FILE *fopen (__const char *__restrict __filename,
__const char *__restrict __modes) ;
extern FILE *freopen (__const char *__restrict __filename,
__const char *__restrict __modes,
FILE *__restrict __stream) ;
# 224 "/usr/include/stdio.h" 3
extern FILE *fdopen (int __fd, __const char *__modes) ;
# 247 "/usr/include/stdio.h" 3
extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) ;
extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
int __modes, size_t __n) ;
extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
size_t __size) ;
extern void setlinebuf (FILE *__stream) ;
extern int fprintf (FILE *__restrict __stream,
__const char *__restrict __format, ...) ;
extern int printf (__const char *__restrict __format, ...) ;
extern int sprintf (char *__restrict __s,
__const char *__restrict __format, ...) ;
extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
__gnuc_va_list __arg) ;
extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg)
;
extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
__gnuc_va_list __arg) ;
extern int snprintf (char *__restrict __s, size_t __maxlen,
__const char *__restrict __format, ...)
__attribute__ ((__format__ (__printf__, 3, 4)));
extern int __vsnprintf (char *__restrict __s, size_t __maxlen,
__const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__format__ (__printf__, 3, 0)));
extern int vsnprintf (char *__restrict __s, size_t __maxlen,
__const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__format__ (__printf__, 3, 0)));
# 321 "/usr/include/stdio.h" 3
extern int fscanf (FILE *__restrict __stream,
__const char *__restrict __format, ...) ;
extern int scanf (__const char *__restrict __format, ...) ;
extern int sscanf (__const char *__restrict __s,
__const char *__restrict __format, ...) ;
# 347 "/usr/include/stdio.h" 3
extern int fgetc (FILE *__stream) ;
extern int getc (FILE *__stream) ;
extern int getchar (void) ;
extern int getc_unlocked (FILE *__stream) ;
extern int getchar_unlocked (void) ;
extern int fgetc_unlocked (FILE *__stream) ;
extern int fputc (int __c, FILE *__stream) ;
extern int putc (int __c, FILE *__stream) ;
extern int putchar (int __c) ;
extern int fputc_unlocked (int __c, FILE *__stream) ;
extern int putc_unlocked (int __c, FILE *__stream) ;
extern int putchar_unlocked (int __c) ;
extern int getw (FILE *__stream) ;
extern int putw (int __w, FILE *__stream) ;
extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
;
# 413 "/usr/include/stdio.h" 3
extern char *gets (char *__s) ;
# 437 "/usr/include/stdio.h" 3
extern int fputs (__const char *__restrict __s, FILE *__restrict __stream)
;
# 447 "/usr/include/stdio.h" 3
extern int puts (__const char *__s) ;
extern int ungetc (int __c, FILE *__stream) ;
extern size_t fread (void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __s) ;
extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __stream) ;
extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __stream) ;
extern int fseek (FILE *__stream, long int __off, int __whence) ;
extern long int ftell (FILE *__stream) ;
extern void rewind (FILE *__stream) ;
# 485 "/usr/include/stdio.h" 3
typedef __off_t off_t;
# 507 "/usr/include/stdio.h" 3
extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos)
;
extern int fsetpos (FILE *__stream, __const fpos_t *__pos) ;
# 543 "/usr/include/stdio.h" 3
extern void clearerr (FILE *__stream) ;
extern int feof (FILE *__stream) ;
extern int ferror (FILE *__stream) ;
extern void clearerr_unlocked (FILE *__stream) ;
extern int feof_unlocked (FILE *__stream) ;
extern int ferror_unlocked (FILE *__stream) ;
extern void perror (__const char *__s) ;
extern int sys_nerr;
extern __const char *__const sys_errlist[];
# 574 "/usr/include/stdio.h" 3
extern int fileno (FILE *__stream) ;
extern int fileno_unlocked (FILE *__stream) ;
extern FILE *popen (__const char *__command, __const char *__modes) ;
extern int pclose (FILE *__stream) ;
extern char *ctermid (char *__s) ;
# 621 "/usr/include/stdio.h" 3
extern void flockfile (FILE *__stream) ;
extern int ftrylockfile (FILE *__stream) ;
extern void funlockfile (FILE *__stream) ;
# 642 "/usr/include/stdio.h" 3
# 1 "/usr/include/bits/stdio.h" 1 3
# 32 "/usr/include/bits/stdio.h" 3
extern __inline int
vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
{
return vfprintf (stdout, __fmt, __arg);
}
extern __inline int
getchar (void)
{
return _IO_getc (stdin);
}
extern __inline int
getc_unlocked (FILE *__fp)
{
return ((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
}
extern __inline int
getchar_unlocked (void)
{
return ((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
}
extern __inline int
putchar (int __c)
{
return _IO_putc (__c, stdout);
}
extern __inline int
fputc_unlocked (int __c, FILE *__stream)
{
return (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}
extern __inline int
putc_unlocked (int __c, FILE *__stream)
{
return (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}
extern __inline int
putchar_unlocked (int __c)
{
return (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
}
# 110 "/usr/include/bits/stdio.h" 3
extern __inline int
feof_unlocked (FILE *__stream)
{
return (((__stream)->_flags & 0x10) != 0);
}
extern __inline int
ferror_unlocked (FILE *__stream)
{
return (((__stream)->_flags & 0x20) != 0);
}
# 643 "/usr/include/stdio.h" 2 3
# 7 "src/mame.h" 2
# 1 "/usr/include/string.h" 1 3
# 26 "/usr/include/string.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/string.h" 2 3
# 1 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stddef.h" 1 3
# 34 "/usr/include/string.h" 2 3
extern void *memcpy (void *__restrict __dest,
__const void *__restrict __src, size_t __n) ;
extern void *memmove (void *__dest, __const void *__src, size_t __n)
;
extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
int __c, size_t __n)
;
extern void *memset (void *__s, int __c, size_t __n) ;
extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
__attribute__ ((__pure__));
extern void *memchr (__const void *__s, int __c, size_t __n)
__attribute__ ((__pure__));
# 77 "/usr/include/string.h" 3
extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
;
extern char *strncpy (char *__restrict __dest,
__const char *__restrict __src, size_t __n) ;
extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
;
extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
size_t __n) ;
extern int strcmp (__const char *__s1, __const char *__s2)
__attribute__ ((__pure__));
extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
__attribute__ ((__pure__));
extern int strcoll (__const char *__s1, __const char *__s2)
__attribute__ ((__pure__));
extern size_t strxfrm (char *__restrict __dest,
__const char *__restrict __src, size_t __n) ;
# 120 "/usr/include/string.h" 3
extern char *strdup (__const char *__s) __attribute__ ((__malloc__));
# 155 "/usr/include/string.h" 3
extern char *strchr (__const char *__s, int __c) __attribute__ ((__pure__));
extern char *strrchr (__const char *__s, int __c) __attribute__ ((__pure__));
# 167 "/usr/include/string.h" 3
extern size_t strcspn (__const char *__s, __const char *__reject)
__attribute__ ((__pure__));
extern size_t strspn (__const char *__s, __const char *__accept)
__attribute__ ((__pure__));
extern char *strpbrk (__const char *__s, __const char *__accept)
__attribute__ ((__pure__));
extern char *strstr (__const char *__haystack, __const char *__needle)
__attribute__ ((__pure__));
# 187 "/usr/include/string.h" 3
extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
;
extern char *__strtok_r (char *__restrict __s,
__const char *__restrict __delim,
char **__restrict __save_ptr) ;
extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
char **__restrict __save_ptr) ;
# 218 "/usr/include/string.h" 3
extern size_t strlen (__const char *__s) __attribute__ ((__pure__));
# 229 "/usr/include/string.h" 3
extern char *strerror (int __errnum) ;
extern char *__strerror_r (int __errnum, char *__buf, size_t __buflen) ;
extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) ;
extern void __bzero (void *__s, size_t __n) ;
extern void bcopy (__const void *__src, void *__dest, size_t __n) ;
extern void bzero (void *__s, size_t __n) ;
extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
__attribute__ ((__pure__));
extern char *index (__const char *__s, int __c) __attribute__ ((__pure__));
extern char *rindex (__const char *__s, int __c) __attribute__ ((__pure__));
extern int __ffs (int __i) __attribute__ ((const));
extern int ffs (int __i) __attribute__ ((const));
# 274 "/usr/include/string.h" 3
extern int strcasecmp (__const char *__s1, __const char *__s2)
__attribute__ ((__pure__));
extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
__attribute__ ((__pure__));
# 296 "/usr/include/string.h" 3
extern char *strsep (char **__restrict __stringp,
__const char *__restrict __delim) ;
# 358 "/usr/include/string.h" 3
# 1 "/usr/include/bits/string.h" 1 3
# 359 "/usr/include/string.h" 2 3
# 1 "/usr/include/bits/string2.h" 1 3
# 80 "/usr/include/bits/string2.h" 3
typedef struct { unsigned char __arr[2]; } __STRING2_COPY_ARR2 __attribute__ ((packed));
typedef struct { unsigned char __arr[3]; } __STRING2_COPY_ARR3 __attribute__ ((packed));
typedef struct { unsigned char __arr[4]; } __STRING2_COPY_ARR4 __attribute__ ((packed));
typedef struct { unsigned char __arr[5]; } __STRING2_COPY_ARR5 __attribute__ ((packed));
typedef struct { unsigned char __arr[6]; } __STRING2_COPY_ARR6 __attribute__ ((packed));
typedef struct { unsigned char __arr[7]; } __STRING2_COPY_ARR7 __attribute__ ((packed));
typedef struct { unsigned char __arr[8]; } __STRING2_COPY_ARR8 __attribute__ ((packed));
# 371 "/usr/include/bits/string2.h" 3
extern void *__rawmemchr (const void *__s, int __c);
# 477 "/usr/include/bits/string2.h" 3
extern __inline char *__strcpy_small (char *, __STRING2_COPY_ARR2,
__STRING2_COPY_ARR3,
__STRING2_COPY_ARR4,
__STRING2_COPY_ARR5,
__STRING2_COPY_ARR6,
__STRING2_COPY_ARR7,
__STRING2_COPY_ARR8, size_t);
extern __inline char *
__strcpy_small (char *__dest,
__STRING2_COPY_ARR2 __src2, __STRING2_COPY_ARR3 __src3,
__STRING2_COPY_ARR4 __src4, __STRING2_COPY_ARR5 __src5,
__STRING2_COPY_ARR6 __src6, __STRING2_COPY_ARR7 __src7,
__STRING2_COPY_ARR8 __src8, size_t __srclen)
{
union {
char __c;
__STRING2_COPY_ARR2 __sca2;
__STRING2_COPY_ARR3 __sca3;
__STRING2_COPY_ARR4 __sca4;
__STRING2_COPY_ARR5 __sca5;
__STRING2_COPY_ARR6 __sca6;
__STRING2_COPY_ARR7 __sca7;
__STRING2_COPY_ARR8 __sca8;
} *__u = (void *) __dest;
switch ((unsigned int) __srclen)
{
case 1:
__u->__c = '\0';
break;
case 2:
__extension__ __u->__sca2 = __src2;
break;
case 3:
__extension__ __u->__sca3 = __src3;
break;
case 4:
__extension__ __u->__sca4 = __src4;
break;
case 5:
__extension__ __u->__sca5 = __src5;
break;
case 6:
__extension__ __u->__sca6 = __src6;
break;
case 7:
__extension__ __u->__sca7 = __src7;
break;
case 8:
__extension__ __u->__sca8 = __src8;
break;
}
return __dest;
}
# 873 "/usr/include/bits/string2.h" 3
extern __inline size_t __strcspn_c1 (__const char *__s, char __reject);
extern __inline size_t
__strcspn_c1 (__const char *__s, char __reject)
{
register size_t __result = 0;
while (__s[__result] != '\0' && __s[__result] != __reject)
++__result;
return __result;
}
extern __inline size_t __strcspn_c2 (__const char *__s, char __reject1,
char __reject2);
extern __inline size_t
__strcspn_c2 (__const char *__s, char __reject1, char __reject2)
{
register size_t __result = 0;
while (__s[__result] != '\0' && __s[__result] != __reject1
&& __s[__result] != __reject2)
++__result;
return __result;
}
extern __inline size_t __strcspn_c3 (__const char *__s, char __reject1,
char __reject2, char __reject3);
extern __inline size_t
__strcspn_c3 (__const char *__s, char __reject1, char __reject2,
char __reject3)
{
register size_t __result = 0;
while (__s[__result] != '\0' && __s[__result] != __reject1
&& __s[__result] != __reject2 && __s[__result] != __reject3)
++__result;
return __result;
}
# 928 "/usr/include/bits/string2.h" 3
extern __inline size_t __strspn_c1 (__const char *__s, char __accept);
extern __inline size_t
__strspn_c1 (__const char *__s, char __accept)
{
register size_t __result = 0;
while (__s[__result] == __accept)
++__result;
return __result;
}
extern __inline size_t __strspn_c2 (__const char *__s, char __accept1,
char __accept2);
extern __inline size_t
__strspn_c2 (__const char *__s, char __accept1, char __accept2)
{
register size_t __result = 0;
while (__s[__result] == __accept1 || __s[__result] == __accept2)
++__result;
return __result;
}
extern __inline size_t __strspn_c3 (__const char *__s, char __accept1,
char __accept2, char __accept3);
extern __inline size_t
__strspn_c3 (__const char *__s, char __accept1, char __accept2, char __accept3)
{
register size_t __result = 0;
while (__s[__result] == __accept1 || __s[__result] == __accept2
|| __s[__result] == __accept3)
++__result;
return __result;
}
# 983 "/usr/include/bits/string2.h" 3
extern __inline char *__strpbrk_c2 (__const char *__s, char __accept1,
char __accept2);
extern __inline char *
__strpbrk_c2 (__const char *__s, char __accept1, char __accept2)
{
while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
++__s;
return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}
extern __inline char *__strpbrk_c3 (__const char *__s, char __accept1,
char __accept2, char __accept3);
extern __inline char *
__strpbrk_c3 (__const char *__s, char __accept1, char __accept2,
char __accept3)
{
while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
&& *__s != __accept3)
++__s;
return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}
# 1045 "/usr/include/bits/string2.h" 3
extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
extern __inline char *
__strtok_r_1c (char *__s, char __sep, char **__nextp)
{
char *__result;
if (__s == ((void *)0))
__s = *__nextp;
while (*__s == __sep)
++__s;
if (*__s == '\0')
__result = ((void *)0);
else
{
__result = __s;
while (*__s != '\0' && *__s != __sep)
++__s;
if (*__s == '\0')
*__nextp = __s;
else
{
*__s = '\0';
*__nextp = __s + 1;
}
}
return __result;
}
# 1095 "/usr/include/bits/string2.h" 3
extern __inline char *__strsep_1c (char **__s, char __reject);
extern __inline char *
__strsep_1c (char **__s, char __reject)
{
register char *__retval = *__s;
if (__retval == ((void *)0))
return *__s = ((void *)0);
if (*__retval == __reject)
*(*__s)++ = '\0';
else
if ((*__s = (__extension__ (__builtin_constant_p (__reject) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : strchr (__retval, __reject)))) != ((void *)0))
*(*__s)++ = '\0';
else
*__s = ((void *)0);
return __retval;
}
extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
extern __inline char *
__strsep_2c (char **__s, char __reject1, char __reject2)
{
register char *__retval = *__s;
if (__retval == ((void *)0))
return *__s = ((void *)0);
if (*__retval == __reject1 || *__retval == __reject2)
*(*__s)++ = '\0';
else
{
register char *__cp = __retval;
while (*__cp != '\0' && *__cp != __reject1 && *__cp != __reject2)
++__cp;
if (*__cp != '\0')
{
*__s = __cp;
*(*__s)++ = '\0';
}
else
*__s = ((void *)0);
}
return __retval;
}
extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
char __reject3);
extern __inline char *
__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
{
register char *__retval = *__s;
if (__retval == ((void *)0))
return *__s = ((void *)0);
if (*__retval == __reject1 || *__retval == __reject2
|| *__retval == __reject3)
*(*__s)++ = '\0';
else
{
register char *__cp = __retval;
while (*__cp != '\0' && *__cp != __reject1 && *__cp != __reject2
&& *__cp != __reject3)
++__cp;
if (*__cp != '\0')
{
*__s = __cp;
*(*__s)++ = '\0';
}
else
*__s = ((void *)0);
}
return __retval;
}
extern __inline char *__strsep_g (char **__s, __const char *__reject);
extern __inline char *
__strsep_g (char **__s, __const char *__reject)
{
register char *__retval = *__s;
if (__retval == ((void *)0))
return ((void *)0);
if ((*__s = __extension__ ({ char __a0, __a1, __a2; (__builtin_constant_p (__reject) && ((size_t)(const void *)((__reject) + 1) - (size_t)(const void *)(__reject) == 1) ? ((__a0 = ((__const char *) (__reject))[0], __a0 == '\0') ? ((void) (__retval), ((void *)0)) : ((__a1 = ((__const char *) (__reject))[1], __a1 == '\0') ? (__extension__ (__builtin_constant_p (__a0) && (__a0) == '\0' ? (char *) __rawmemchr (__retval, __a0) : strchr (__retval, __a0))) : ((__a2 = ((__const char *) (__reject))[2], __a2 == '\0') ? __strpbrk_c2 (__retval, __a0, __a1) : (((__const char *) (__reject))[3] == '\0' ? __strpbrk_c3 (__retval, __a0, __a1, __a2) : strpbrk (__retval, __reject))))) : strpbrk (__retval, __reject)); })) != ((void *)0))
*(*__s)++ = '\0';
return __retval;
}
# 1188 "/usr/include/bits/string2.h" 3
# 1 "/usr/include/stdlib.h" 1 3
# 25 "/usr/include/stdlib.h" 3
# 1 "/usr/include/features.h" 1 3
# 26 "/usr/include/stdlib.h" 2 3
# 1 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stddef.h" 1 3
# 34 "/usr/include/stdlib.h" 2 3
# 526 "/usr/include/stdlib.h" 3
extern void *malloc (size_t __size) __attribute__ ((__malloc__));
extern void *calloc (size_t __nmemb, size_t __size)
__attribute__ ((__malloc__));
# 1189 "/usr/include/bits/string2.h" 2 3
extern char *__strdup (__const char *__string) __attribute__ ((__malloc__));
# 1212 "/usr/include/bits/string2.h" 3
extern char *__strndup (__const char *__string, size_t __n)
__attribute__ ((__malloc__));
# 362 "/usr/include/string.h" 2 3
# 8 "src/mame.h" 2
# 1 "/usr/include/stdlib.h" 1 3
# 25 "/usr/include/stdlib.h" 3
# 1 "/usr/include/features.h" 1 3
# 26 "/usr/include/stdlib.h" 2 3
# 1 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stddef.h" 1 3
# 34 "/usr/include/stdlib.h" 2 3
# 94 "/usr/include/stdlib.h" 3
typedef struct
{
int quot;
int rem;
} div_t;
typedef struct
{
long int quot;
long int rem;
} ldiv_t;
# 133 "/usr/include/stdlib.h" 3
extern size_t __ctype_get_mb_cur_max (void) ;
extern double atof (__const char *__nptr) __attribute__ ((__pure__));
extern int atoi (__const char *__nptr) __attribute__ ((__pure__));
extern long int atol (__const char *__nptr) __attribute__ ((__pure__));
__extension__ extern long long int atoll (__const char *__nptr)
__attribute__ ((__pure__));
extern double strtod (__const char *__restrict __nptr,
char **__restrict __endptr) ;
# 163 "/usr/include/stdlib.h" 3
extern long int strtol (__const char *__restrict __nptr,
char **__restrict __endptr, int __base) ;
extern unsigned long int strtoul (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
;
__extension__
extern long long int strtoq (__const char *__restrict __nptr,
char **__restrict __endptr, int __base) ;
__extension__
extern unsigned long long int strtouq (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
;
__extension__
extern long long int strtoll (__const char *__restrict __nptr,
char **__restrict __endptr, int __base) ;
__extension__
extern unsigned long long int strtoull (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
;
# 250 "/usr/include/stdlib.h" 3
extern double __strtod_internal (__const char *__restrict __nptr,
char **__restrict __endptr, int __group)
;
extern float __strtof_internal (__const char *__restrict __nptr,
char **__restrict __endptr, int __group)
;
extern long double __strtold_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __group) ;
extern long int __strtol_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group) ;
extern unsigned long int __strtoul_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group) ;
__extension__
extern long long int __strtoll_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group) ;
__extension__
extern unsigned long long int __strtoull_internal (__const char *
__restrict __nptr,
char **__restrict __endptr,
int __base, int __group)
;
# 294 "/usr/include/stdlib.h" 3
extern __inline double
strtod (__const char *__restrict __nptr, char **__restrict __endptr)
{
return __strtod_internal (__nptr, __endptr, 0);
}
extern __inline long int
strtol (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtol_internal (__nptr, __endptr, __base, 0);
}
extern __inline unsigned long int
strtoul (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoul_internal (__nptr, __endptr, __base, 0);
}
# 326 "/usr/include/stdlib.h" 3
__extension__ extern __inline long long int
strtoq (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtouq (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoull_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline long long int
strtoll (__const char *__restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtoull (__const char * __restrict __nptr, char **__restrict __endptr,
int __base)
{
return __strtoull_internal (__nptr, __endptr, __base, 0);
}
extern __inline double
atof (__const char *__nptr)
{
return strtod (__nptr, (char **) ((void *)0));
}
extern __inline int
atoi (__const char *__nptr)
{
return (int) strtol (__nptr, (char **) ((void *)0), 10);
}
extern __inline long int
atol (__const char *__nptr)
{
return strtol (__nptr, (char **) ((void *)0), 10);
}
__extension__ extern __inline long long int
atoll (__const char *__nptr)
{
return strtoll (__nptr, (char **) ((void *)0), 10);
}
# 385 "/usr/include/stdlib.h" 3
extern char *l64a (long int __n) ;
extern long int a64l (__const char *__s) __attribute__ ((__pure__));
# 1 "/usr/include/sys/types.h" 1 3
# 26 "/usr/include/sys/types.h" 3
# 1 "/usr/include/features.h" 1 3
# 27 "/usr/include/sys/types.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 31 "/usr/include/sys/types.h" 2 3
typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;
typedef __loff_t loff_t;
typedef __ino_t ino_t;
# 58 "/usr/include/sys/types.h" 3
typedef __dev_t dev_t;
typedef __gid_t gid_t;
typedef __mode_t mode_t;
typedef __nlink_t nlink_t;
typedef __uid_t uid_t;
# 96 "/usr/include/sys/types.h" 3
typedef __pid_t pid_t;
typedef __id_t id_t;
typedef __ssize_t ssize_t;
typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;
typedef __key_t key_t;
# 126 "/usr/include/sys/types.h" 3
# 1 "/usr/include/time.h" 1 3
# 127 "/usr/include/sys/types.h" 2 3
# 140 "/usr/include/sys/types.h" 3
# 1 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stddef.h" 1 3
# 141 "/usr/include/sys/types.h" 2 3
typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 184 "/usr/include/sys/types.h" 3
typedef int int8_t __attribute__ ((__mode__ (__QI__)));
typedef int int16_t __attribute__ ((__mode__ (__HI__)));
typedef int int32_t __attribute__ ((__mode__ (__SI__)));
typedef int int64_t __attribute__ ((__mode__ (__DI__)));
typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
typedef int register_t __attribute__ ((__mode__ (__word__)));
# 206 "/usr/include/sys/types.h" 3
# 1 "/usr/include/endian.h" 1 3
# 22 "/usr/include/endian.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/endian.h" 2 3
# 37 "/usr/include/endian.h" 3
# 1 "/usr/include/bits/endian.h" 1 3
# 38 "/usr/include/endian.h" 2 3
# 207 "/usr/include/sys/types.h" 2 3
# 1 "/usr/include/sys/select.h" 1 3
# 25 "/usr/include/sys/select.h" 3
# 1 "/usr/include/features.h" 1 3
# 26 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/bits/types.h" 1 3
# 29 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/bits/select.h" 1 3
# 32 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/bits/sigset.h" 1 3
# 23 "/usr/include/bits/sigset.h" 3
typedef int __sig_atomic_t;
typedef struct
{
unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
} __sigset_t;
# 35 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/time.h" 1 3
# 39 "/usr/include/sys/select.h" 2 3
struct timeval;
typedef __fd_mask fd_mask;
typedef __fd_set fd_set;
# 74 "/usr/include/sys/select.h" 3
extern int select (int __nfds, __fd_set *__restrict __readfds,
__fd_set *__restrict __writefds,
__fd_set *__restrict __exceptfds,
struct timeval *__restrict __timeout) ;
# 210 "/usr/include/sys/types.h" 2 3
# 1 "/usr/include/sys/sysmacros.h" 1 3
# 213 "/usr/include/sys/types.h" 2 3
# 224 "/usr/include/sys/types.h" 3
typedef __blkcnt_t blkcnt_t;
typedef __fsblkcnt_t fsblkcnt_t;
typedef __fsfilcnt_t fsfilcnt_t;
# 392 "/usr/include/stdlib.h" 2 3
extern int32_t random (void) ;
extern void srandom (unsigned int __seed) ;
extern char *initstate (unsigned int __seed, char *__statebuf,
size_t __statelen) ;
extern char *setstate (char *__statebuf) ;
struct random_data
{
int32_t *fptr;
int32_t *rptr;
int32_t *state;
int rand_type;
int rand_deg;
int rand_sep;
int32_t *end_ptr;
};
extern int random_r (struct random_data *__restrict __buf,
int32_t *__restrict __result) ;
extern int srandom_r (unsigned int __seed, struct random_data *__buf) ;
extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
size_t __statelen,
struct random_data *__restrict __buf) ;
extern int setstate_r (char *__restrict __statebuf,
struct random_data *__restrict __buf) ;
extern int rand (void) ;
extern void srand (unsigned int __seed) ;
extern int rand_r (unsigned int *__seed) ;
extern double drand48 (void) ;
extern double erand48 (unsigned short int __xsubi[3]) ;
extern long int lrand48 (void) ;
extern long int nrand48 (unsigned short int __xsubi[3]) ;
extern long int mrand48 (void) ;
extern long int jrand48 (unsigned short int __xsubi[3]) ;
extern void srand48 (long int __seedval) ;
extern unsigned short int *seed48 (unsigned short int __seed16v[3]) ;
extern void lcong48 (unsigned short int __param[7]) ;
struct drand48_data
{
unsigned short int x[3];
unsigned short int a[3];
unsigned short int c;
unsigned short int old_x[3];
int init;
};
extern int drand48_r (struct drand48_data *__restrict __buffer,
double *__restrict __result) ;
extern int erand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
double *__restrict __result) ;
extern int lrand48_r (struct drand48_data *__restrict __buffer,
long int *__restrict __result) ;
extern int nrand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
long int *__restrict __result) ;
extern int mrand48_r (struct drand48_data *__restrict __buffer,
long int *__restrict __result) ;
extern int jrand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
long int *__restrict __result) ;
extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
;
extern int seed48_r (unsigned short int __seed16v[3],
struct drand48_data *__buffer) ;
extern int lcong48_r (unsigned short int __param[7],
struct drand48_data *__buffer) ;
# 535 "/usr/include/stdlib.h" 3
extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__malloc__));
extern void free (void *__ptr) ;
extern void cfree (void *__ptr) ;
# 1 "/usr/include/alloca.h" 1 3
# 22 "/usr/include/alloca.h" 3
# 1 "/usr/include/features.h" 1 3
# 23 "/usr/include/alloca.h" 2 3
# 1 "/opt/gcc-20010516/lib/gcc-lib/ia64-unknown-linux/3.1/include/stddef.h" 1 3
# 26 "/usr/include/alloca.h" 2 3
extern void *alloca (size_t __size) ;
# 546 "/usr/include/stdlib.h" 2 3
extern void *valloc (size_t __size) __attribute__ ((__malloc__));
# 560 "/usr/include/stdlib.h" 3
extern void abort (void) __attribute__ ((__noreturn__));
extern int atexit (void (*__func) (void)) ;
extern int __on_exit (void (*__func) (int __status, void *__arg), void *__arg)
;
extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
;
extern void exit (int __status) __attribute__ ((__noreturn__));
# 588 "/usr/include/stdlib.h" 3
extern char *getenv (__const char *__name) ;
extern char *__secure_getenv (__const char *__name) ;
extern int putenv (char *__string) ;
extern int setenv (__const char *__name, __const char *__value, int __replace)
;
extern void unsetenv (__const char *__name) ;
extern int clearenv (void) ;
# 624 "/usr/include/stdlib.h" 3
extern char *mktemp (char *__template) ;
extern int mkstemp (char *__template) ;
# 651 "/usr/include/stdlib.h" 3
extern char *mkdtemp (char *__template) ;
extern int system (__const char *__command) ;
# 673 "/usr/include/stdlib.h" 3
extern char *realpath (__const char *__restrict __name,
char *__restrict __resolved) ;
typedef int (*__compar_fn_t) (__const void *, __const void *);
# 690 "/usr/include/stdlib.h" 3
extern void *bsearch (__const void *__key, __const void *__base,
size_t __nmemb, size_t __size, __compar_fn_t __compar);
extern void qsort (void *__base, size_t __nmemb, size_t __size,
__compar_fn_t __compar);
extern int abs (int __x) __attribute__ ((__const__));
extern long int labs (long int __x) __attribute__ ((__const__));
# 711 "/usr/include/stdlib.h" 3
extern div_t div (int __numer, int __denom)
__attribute__ ((__const__));
extern ldiv_t ldiv (long int __numer, long int __denom)
__attribute__ ((__const__));
# 729 "/usr/include/stdlib.h" 3
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign) ;
extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign) ;
extern char *gcvt (double __value, int __ndigit, char *__buf) ;
extern char *qecvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign) ;
extern char *qfcvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign) ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf) ;
extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len) ;
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len) ;
extern int qecvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len) ;
extern int qfcvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len) ;
extern int mblen (__const char *__s, size_t __n) ;
extern int mbtowc (wchar_t *__restrict __pwc,
__const char *__restrict __s, size_t __n) ;
extern int wctomb (char *__s, wchar_t __wchar) ;
extern size_t mbstowcs (wchar_t *__restrict __pwcs,
__const char *__restrict __s, size_t __n) ;
extern size_t wcstombs (char *__restrict __s,
__const wchar_t *__restrict __pwcs, size_t __n)
;
extern int rpmatch (__const char *__response) ;
# 851 "/usr/include/stdlib.h" 3
extern int getloadavg (double __loadavg[], int __nelem) ;
# 9 "src/mame.h" 2
extern char build_version[];
struct RegionInfo
{
UINT8 * base;
size_t length;
UINT32 type;
UINT32 flags;
};
struct RunningMachine
{
struct RegionInfo memory_region[32];
struct GfxElement *gfx[32];
struct osd_bitmap *scrbitmap;
struct rectangle visible_area;
UINT32 *pens;
UINT16 *game_colortable;
UINT32 *remapped_colortable;
const struct GameDriver *gamedrv;
const struct MachineDriver *drv;
int color_depth;
int sample_rate;
struct GameSamples *samples;
struct InputPort *input_ports;
struct InputPort *input_ports_default;
int orientation;
struct GfxElement *uifont;
int uifontwidth,uifontheight;
int uixmin,uiymin;
int uiwidth,uiheight;
int ui_orientation;
struct rectangle absolute_visible_area;
struct osd_bitmap *debug_bitmap;
UINT32 *debug_pens;
UINT32 *debug_remapped_colortable;
struct GfxElement *debugger_font;
};
# 83 "src/mame.h"
struct GameOptions {
void *record;
void *playback;
void *language_file;
int mame_debug;
int cheat;
int gui_host;
int samplerate;
int use_samples;
int use_emulated_ym3812;
int use_filter;
int color_depth;
int vector_width;
int vector_height;
int debug_width;
int debug_height;
int norotate;
int ror;
int rol;
int flipx;
int flipy;
int beam;
float vector_flicker;
int translucency;
int antialias;
int use_artwork;
char savegame;
};
extern struct GameOptions options;
extern struct RunningMachine *Machine;
int run_game (int game);
int updatescreen(void);
void draw_screen(void);
void schedule_full_refresh(void);
void update_video_and_audio(void);
int mame_highscore_enabled(void);
void set_led_status(int num,int on);
# 5 "src/mamedbg.h" 2
extern int mame_debug;
# 7 "src/driver.h" 2
# 1 "src/osdepend.h" 1
# 8 "src/driver.h" 2
# 1 "src/mame.h" 1
# 9 "src/driver.h" 2
# 1 "src/common.h" 1
# 24 "src/common.h"
struct RomModule
{
const char *_name;
UINT32 _offset;
UINT32 _length;
UINT32 _crc;
};
struct GameSample
{
int length;
int smpfreq;
int resolution;
signed char data[1];
};
struct GameSamples
{
int total;
struct GameSample *sample[1];
};
# 56 "src/common.h"
enum
{
REGION_INVALID = 0x80,
REGION_CPU1,
REGION_CPU2,
REGION_CPU3,
REGION_CPU4,
REGION_CPU5,
REGION_CPU6,
REGION_CPU7,
REGION_CPU8,
REGION_GFX1,
REGION_GFX2,
REGION_GFX3,
REGION_GFX4,
REGION_GFX5,
REGION_GFX6,
REGION_GFX7,
REGION_GFX8,
REGION_PROMS,
REGION_SOUND1,
REGION_SOUND2,
REGION_SOUND3,
REGION_SOUND4,
REGION_SOUND5,
REGION_SOUND6,
REGION_SOUND7,
REGION_SOUND8,
REGION_USER1,
REGION_USER2,
REGION_USER3,
REGION_USER4,
REGION_USER5,
REGION_USER6,
REGION_USER7,
REGION_USER8,
REGION_MAX
};
# 303 "src/common.h"
void showdisclaimer(void);
const struct RomModule *rom_first_region(const struct GameDriver *drv);
const struct RomModule *rom_next_region(const struct RomModule *romp);
const struct RomModule *rom_first_file(const struct RomModule *romp);
const struct RomModule *rom_next_file(const struct RomModule *romp);
const struct RomModule *rom_first_chunk(const struct RomModule *romp);
const struct RomModule *rom_next_chunk(const struct RomModule *romp);
void coin_counter_w(int num,int on);
void coin_lockout_w(int num,int on);
void coin_lockout_global_w(int on);
int readroms(void);
void printromlist(const struct RomModule *romp,const char *name);
struct GameSamples *readsamples(const char **samplenames,const char *name);
void freesamples(struct GameSamples *samples);
UINT8 *memory_region(int num);
size_t memory_region_length(int num);
int new_memory_region(int num, size_t length, UINT32 flags);
void free_memory_region(int num);
extern int flip_screen_x, flip_screen_y;
void flip_screen_set(int on);
void flip_screen_x_set(int on);
void flip_screen_y_set(int on);
void set_vh_global_attribute( int *addr, int data );
void set_visible_area(int min_x,int max_x,int min_y,int max_y);
struct osd_bitmap *bitmap_alloc(int width,int height);
struct osd_bitmap *bitmap_alloc_depth(int width,int height,int depth);
void bitmap_free(struct osd_bitmap *bitmap);
void save_screen_snapshot_as(void *fp,struct osd_bitmap *bitmap);
void save_screen_snapshot(struct osd_bitmap *bitmap);
# 10 "src/driver.h" 2
# 1 "src/drawgfx.h" 1
# 11 "src/driver.h" 2
# 1 "src/palette.h" 1
# 126 "src/palette.h"
int palette_start(void);
void palette_stop(void);
int palette_init(void);
void palette_post_screen_update_cb(void);
void palette_change_color(int color,UINT8 red,UINT8 green,UINT8 blue);
extern UINT8 *palette_used_colors;
void palette_increase_usage_count(int table_offset,unsigned int usage_mask,int color_flags);
void palette_decrease_usage_count(int table_offset,unsigned int usage_mask,int color_flags);
void palette_increase_usage_countx(int table_offset,int num_pens,const UINT8 *pen_data,int color_flags);
void palette_decrease_usage_countx(int table_offset,int num_pens,const UINT8 *pen_data,int color_flags);
void palette_init_used_colors(void);
const UINT8 *palette_recalc(void);
# 167 "src/palette.h"
extern UINT16 palette_transparent_pen;
extern UINT16 *palette_shadow_table;
extern data8_t *paletteram;
extern data8_t *paletteram_2;
extern data16_t *paletteram16;
extern data16_t *paletteram16_2;
extern data32_t *paletteram32;
data8_t paletteram_r(offs_t offset __attribute__((__unused__)));
data8_t paletteram_2_r(offs_t offset __attribute__((__unused__)));
data16_t paletteram16_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t paletteram16_2_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data32_t paletteram32_r(offs_t offset __attribute__((__unused__)), data32_t mem_mask __attribute__((__unused__)));
void paletteram_BBGGGRRR_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_RRRGGGBB_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_BBBGGGRR_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_IIBBGGRR_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_BBGGRRII_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_xxxxBBBBGGGGRRRR_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_xxxxBBBBGGGGRRRR_swap_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_xxxxBBBBGGGGRRRR_split1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_xxxxBBBBGGGGRRRR_split2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram16_xxxxBBBBGGGGRRRR_word_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void paletteram_xxxxBBBBRRRRGGGG_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_xxxxBBBBRRRRGGGG_swap_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_xxxxBBBBRRRRGGGG_split1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_xxxxBBBBRRRRGGGG_split2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_xxxxRRRRBBBBGGGG_split1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_xxxxRRRRBBBBGGGG_split2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_xxxxRRRRGGGGBBBB_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_xxxxRRRRGGGGBBBB_swap_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram16_xxxxRRRRGGGGBBBB_word_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void paletteram_RRRRGGGGBBBBxxxx_swap_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_RRRRGGGGBBBBxxxx_split1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_RRRRGGGGBBBBxxxx_split2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram16_RRRRGGGGBBBBxxxx_word_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void paletteram_BBBBGGGGRRRRxxxx_swap_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_BBBBGGGGRRRRxxxx_split1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_BBBBGGGGRRRRxxxx_split2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram16_BBBBGGGGRRRRxxxx_word_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void paletteram_xBBBBBGGGGGRRRRR_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram_xBBBBBGGGGGRRRRR_swap_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram16_xBBBBBGGGGGRRRRR_word_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void paletteram_xRRRRRGGGGGBBBBB_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram16_xRRRRRGGGGGBBBBB_word_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void paletteram16_xGGGGGRRRRRBBBBB_word_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void paletteram_RRRRRGGGGGBBBBBx_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void paletteram16_RRRRRGGGGGBBBBBx_word_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void paletteram16_IIIIRRRRGGGGBBBB_word_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void paletteram16_RRRRGGGGBBBBIIII_word_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void paletteram16_xrgb_word_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void paletteram16_RRRRGGGGBBBBRGBx_word_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
# 12 "src/driver.h" 2
# 1 "src/cpuintrf.h" 1
# 1 "src/unix/osd_cpu.h" 1
# 5 "src/cpuintrf.h" 2
# 1 "src/memory.h" 1
# 6 "src/cpuintrf.h" 2
# 1 "src/timer.h" 1
# 17 "src/timer.h"
extern double cycles_to_sec[];
extern double sec_to_cycles[];
# 41 "src/timer.h"
void timer_init(void);
void *timer_pulse(double period, int param, void(*callback)(int));
void *timer_set(double duration, int param, void(*callback)(int));
void timer_reset(void *which, double duration);
void timer_remove(void *which);
int timer_enable(void *which, int enable);
double timer_timeelapsed(void *which);
double timer_timeleft(void *which);
double timer_get_time(void);
double timer_starttime(void *which);
double timer_firetime(void *which);
int timer_schedule_cpu(int *cpu, int *cycles);
void timer_update_cpu(int cpu, int ran);
void timer_suspendcpu(int cpu, int suspend, int reason);
void timer_holdcpu(int cpu, int hold, int reason);
int timer_iscpususpended(int cpu, int reason);
int timer_iscpuheld(int cpunum, int reason);
void timer_suspendcpu_trigger(int cpu, int trigger);
void timer_holdcpu_trigger(int cpu, int trigger);
void timer_trigger(int trigger);
double timer_get_overclock(int cpunum);
void timer_set_overclock(int cpunum, double overclock);
# 7 "src/cpuintrf.h" 2
struct MachineCPU
{
int cpu_type;
int cpu_clock;
const void *memory_read;
const void *memory_write;
const void *port_read;
const void *port_write;
int (*vblank_interrupt)(void);
int vblank_interrupts_per_frame;
int (*timed_interrupt)(void);
int timed_interrupts_per_second;
void *reset_param;
};
enum
{
CPU_DUMMY,
CPU_Z80,
CPU_8080,
CPU_8085A,
CPU_M6502,
CPU_M65C02,
# 61 "src/cpuintrf.h"
CPU_M6510,
# 73 "src/cpuintrf.h"
CPU_N2A03,
CPU_H6280,
CPU_I86,
CPU_I186,
# 97 "src/cpuintrf.h"
CPU_V20,
CPU_V30,
CPU_V33,
CPU_I8035,
CPU_I8039,
CPU_I8048,
CPU_N7751,
CPU_I8X41,
CPU_M6800,
CPU_M6801,
CPU_M6802,
CPU_M6803,
CPU_M6808,
CPU_HD63701,
CPU_NSC8105,
CPU_M6805,
CPU_M68705,
CPU_HD63705,
CPU_HD6309,
CPU_M6809,
CPU_KONAMI,
CPU_M68000,
CPU_M68010,
CPU_M68EC020,
CPU_M68020,
CPU_T11,
CPU_S2650,
CPU_TMS34010,
# 190 "src/cpuintrf.h"
CPU_TMS9980,
# 199 "src/cpuintrf.h"
CPU_TMS9995,
# 208 "src/cpuintrf.h"
CPU_Z8000,
CPU_TMS320C10,
CPU_CCPU,
CPU_ADSP2100,
CPU_ADSP2105,
CPU_PSXCPU,
CPU_ASAP,
CPU_UPD7810,
# 273 "src/cpuintrf.h"
CPU_COUNT
};
# 300 "src/cpuintrf.h"
enum {
CPU_INFO_REG,
CPU_INFO_FLAGS=128,
CPU_INFO_NAME,
CPU_INFO_FAMILY,
CPU_INFO_VERSION,
CPU_INFO_FILE,
CPU_INFO_CREDITS,
CPU_INFO_REG_LAYOUT,
CPU_INFO_WIN_LAYOUT
};
# 336 "src/cpuintrf.h"
struct cpu_interface
{
unsigned cpu_num;
void (*init)(void);
void (*reset)(void *param);
void (*exit)(void);
int (*execute)(int cycles);
void (*burn)(int cycles);
unsigned (*get_context)(void *reg);
void (*set_context)(void *reg);
void *(*get_cycle_table)(int which);
void (*set_cycle_table)(int which, void *new_table);
unsigned (*get_pc)(void);
void (*set_pc)(unsigned val);
unsigned (*get_sp)(void);
void (*set_sp)(unsigned val);
unsigned (*get_reg)(int regnum);
void (*set_reg)(int regnum, unsigned val);
void (*set_nmi_line)(int linestate);
void (*set_irq_line)(int irqline, int linestate);
void (*set_irq_callback)(int(*callback)(int irqline));
void (*internal_interrupt)(int type);
const char* (*cpu_info)(void *context,int regnum);
unsigned (*cpu_dasm)(char *buffer,unsigned pc);
unsigned num_irqs;
int default_vector;
int *icount;
double overclock;
int no_int, irq_int, nmi_int;
int databus_width;
mem_read_handler memory_read;
mem_write_handler memory_write;
mem_read_handler internal_read;
mem_write_handler internal_write;
offs_t pgm_memory_base;
void (*set_op_base)(offs_t pc);
int address_shift;
unsigned address_bits, endianess, align_unit, max_inst_len;
};
extern struct cpu_interface cpuintf[];
void cpu_init(void);
void cpu_run(void);
void watchdog_reset_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data8_t watchdog_reset_r(offs_t offset __attribute__((__unused__)));
void watchdog_reset16_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t watchdog_reset16_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void machine_reset(void);
void cpu_set_reset_line(int cpu,int state);
void cpu_set_halt_line(int cpu,int state);
int cpu_getstatus(int cpunum);
int cpu_gettotalcpu(void);
int cpu_getactivecpu(void);
void cpu_setactivecpu(int cpunum);
offs_t cpu_get_pc(void);
offs_t cpu_get_pc_byte(void);
void cpu_set_pc(offs_t val);
offs_t cpu_get_sp(void);
void cpu_set_sp(offs_t val);
unsigned cpu_get_context(void *context);
void cpu_set_context(void *context);
void *cpu_get_cycle_table(int which);
void cpu_set_cycle_tbl(int which, void *new_table);
unsigned cpu_get_reg(int regnum);
void cpu_set_reg(int regnum, unsigned val);
# 434 "src/cpuintrf.h"
int cycles_currently_ran(void);
int cycles_left_to_run(void);
void cpu_set_op_base(unsigned val);
int cpu_gettotalcycles(void);
int cpu_geticount(void);
int cpu_getfcount(void);
int cpu_getfperiod(void);
int cpu_scalebyfcount(int value);
int cpu_getscanline(void);
double cpu_getscanlinetime(int scanline);
double cpu_getscanlineperiod(void);
int cpu_getscanlinecycles(void);
int cpu_getcurrentcycles(void);
int cpu_gethorzbeampos(void);
int cpu_getiloops(void);
int cpu_getvblank(void);
int cpu_getcurrentframe(void);
void cpu_triggertime (double duration, int trigger);
void cpu_trigger (int trigger);
void cpu_spinuntil_trigger (int trigger);
void cpu_spinuntil_int (void);
void cpu_spin (void);
void cpu_spinuntil_time (double duration);
void cpu_yielduntil_trigger (int trigger);
void cpu_yielduntil_int (void);
void cpu_yield (void);
void cpu_yielduntil_time (double duration);
void cpu_set_nmi_line(int cpunum, int state);
void cpu_set_irq_line(int cpunum, int irqline, int state);
void cpu_generate_internal_interrupt(int cpunum, int type);
void cpu_irq_line_vector_w(int cpunum, int irqline, int vector);
void cpu_set_irq_callback(int cpunum, int (*callback)(int irqline));
void cpu_0_irq_line_vector_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void cpu_1_irq_line_vector_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void cpu_2_irq_line_vector_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void cpu_3_irq_line_vector_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void cpu_4_irq_line_vector_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void cpu_5_irq_line_vector_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void cpu_6_irq_line_vector_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void cpu_7_irq_line_vector_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void cpu_cause_interrupt(int cpu,int type);
void cpu_clear_pending_interrupts(int cpu);
void cpu_interrupt_enable(int cpu,int enabled);
void interrupt_enable_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void interrupt_vector_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
int interrupt(void);
int nmi_interrupt(void);
int m68_level1_irq(void);
int m68_level2_irq(void);
int m68_level3_irq(void);
int m68_level4_irq(void);
int m68_level5_irq(void);
int m68_level6_irq(void);
int m68_level7_irq(void);
int ignore_interrupt(void);
void* cpu_getcontext (int _activecpu);
int cpu_is_saving_context(int _activecpu);
unsigned cpu_address_bits(void);
unsigned cpu_address_mask(void);
int cpu_address_shift(void);
unsigned cpu_endianess(void);
unsigned cpu_align_unit(void);
unsigned cpu_max_inst_len(void);
const char *cpu_name(void);
const char *cpu_core_family(void);
const char *cpu_core_version(void);
const char *cpu_core_file(void);
const char *cpu_core_credits(void);
const char *cpu_reg_layout(void);
const char *cpu_win_layout(void);
unsigned cpu_dasm(char *buffer, unsigned pc);
const char *cpu_flags(void);
const char *cpu_dump_reg(int regnum);
const char *cpu_dump_state(void);
int cputype_address_shift(int cputype);
unsigned cputype_address_bits(int cputype);
unsigned cputype_address_mask(int cputype);
unsigned cputype_endianess(int cputype);
unsigned cputype_databus_width(int cputype);
unsigned cputype_align_unit(int cputype);
unsigned cputype_max_inst_len(int cputype);
const char *cputype_name(int cputype);
const char *cputype_core_family(int cputype);
const char *cputype_core_version(int cputype);
const char *cputype_core_file(int cputype);
const char *cputype_core_credits(int cputype);
const char *cputype_reg_layout(int cputype);
const char *cputype_win_layout(int cputype);
unsigned cpunum_address_bits(int cpunum);
unsigned cpunum_address_mask(int cpunum);
unsigned cpunum_endianess(int cpunum);
unsigned cpunum_databus_width(int cpunum);
unsigned cpunum_align_unit(int cpunum);
unsigned cpunum_max_inst_len(int cpunum);
unsigned cpunum_get_reg(int cpunum, int regnum);
void cpunum_set_reg(int cpunum, int regnum, unsigned val);
const char *cpunum_reg_layout(int cpunum);
const char *cpunum_win_layout(int cpunum);
unsigned cpunum_dasm(int cpunum,char *buffer,unsigned pc);
const char *cpunum_flags(int cpunum);
const char *cpunum_dump_reg(int cpunum, int regnum);
const char *cpunum_dump_state(int cpunum);
const char *cpunum_name(int cpunum);
const char *cpunum_core_family(int cpunum);
const char *cpunum_core_version(int cpunum);
const char *cpunum_core_file(int cpunum);
const char *cpunum_core_credits(int cpunum);
void cpu_set_m68k_reset(int cpunum, void (*resetfn)(void));
void cpu_dump_states(void);
enum {
LOADSAVE_NONE = 0,
LOADSAVE_SAVE = 1,
LOADSAVE_LOAD = 2
};
void cpu_loadsave_schedule(int type, char id);
void cpu_loadsave_reset(void);
typedef struct {
void (*reset)(int);
int (*interrupt_entry)(int);
void (*interrupt_reti)(int);
int irq_param;
} Z80_DaisyChain;
# 13 "src/driver.h" 2
# 1 "src/sndintrf.h" 1
struct MachineSound
{
int sound_type;
void *sound_interface;
};
# 1 "src/sound/mixer.h" 1
# 72 "src/sound/mixer.h"
int mixer_sh_start(void);
void mixer_sh_stop(void);
void mixer_sh_update(void);
int mixer_allocate_channel(int default_mixing_level);
int mixer_allocate_channels(int channels,const int *default_mixing_levels);
void mixer_set_name(int channel,const char *name);
const char *mixer_get_name(int channel);
# 87 "src/sound/mixer.h"
void mixer_set_volume(int channel,int volume);
void mixer_play_sample(int channel,INT8 *data,int len,int freq,int loop);
void mixer_play_sample_16(int channel,INT16 *data,int len,int freq,int loop);
void mixer_stop_sample(int channel);
int mixer_is_sample_playing(int channel);
void mixer_set_sample_frequency(int channel,int freq);
void mixer_sound_enable_global_w(int enable);
void mixer_play_streamed_sample_16(int channel,INT16 *data,int len,int freq);
int mixer_samples_this_frame(void);
int mixer_need_samples_this_frame(int channel,int freq);
void mixer_set_lowpass_frequency(int ch, int freq);
void mixer_set_mixing_level(int channel,int level);
int mixer_get_mixing_level(int level);
int mixer_get_default_mixing_level(int level);
void mixer_read_config(void *f);
void mixer_write_config(void *f);
void mixer_set_stereo_volume(int ch, int l_vol, int r_vol );
# 13 "src/sndintrf.h" 2
# 1 "src/sound/streams.h" 1
void set_RC_filter(int channel,int R1,int R2,int R3,int C);
int streams_sh_start(void);
void streams_sh_stop(void);
void streams_sh_update(void);
int stream_init(const char *name,int default_mixing_level,
int sample_rate,
int param,void (*callback)(int param,INT16 *buffer,int length));
int stream_init_multi(int channels,const char **names,const int *default_mixing_levels,
int sample_rate,
int param,void (*callback)(int param,INT16 **buffer,int length));
void stream_update(int channel,int min_interval);
# 14 "src/sndintrf.h" 2
# 1 "src/sound/samples.h" 1
struct Samplesinterface
{
int channels;
int volume;
const char **samplenames;
};
void sample_start(int channel,int samplenum,int loop);
void sample_set_freq(int channel,int freq);
void sample_set_volume(int channel,int volume);
void sample_stop(int channel);
int sample_playing(int channel);
int samples_sh_start(const struct MachineSound *msound);
# 17 "src/sndintrf.h" 2
# 1 "src/sound/dac.h" 1
# 10 "src/sound/dac.h"
struct DACinterface
{
int num;
int mixing_level[4];
};
int DAC_sh_start(const struct MachineSound *msound);
void DAC_data_w(int num,int data);
void DAC_signed_data_w(int num,int data);
void DAC_data_16_w(int num,int data);
void DAC_signed_data_16_w(int num,int data);
void DAC_0_data_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void DAC_1_data_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void DAC_0_signed_data_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void DAC_1_signed_data_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
# 20 "src/sndintrf.h" 2
# 1 "src/sound/discrete.h" 1
# 412 "src/sound/discrete.h"
struct discrete_sound_block
{
int node;
int type;
int input_node0;
int input_node1;
int input_node2;
int input_node3;
int input_node4;
int input_node5;
double initial0;
double initial1;
double initial2;
double initial3;
double initial4;
double initial5;
};
struct node_description
{
int node;
int module;
double output;
struct node_description *input_node0;
struct node_description *input_node1;
struct node_description *input_node2;
struct node_description *input_node3;
struct node_description *input_node4;
struct node_description *input_node5;
double input0;
double input1;
double input2;
double input3;
double input4;
double input5;
void *context;
};
struct discrete_module
{
int type;
char *name;
int (*init) (struct node_description *node);
int (*kill) (struct node_description *node);
int (*reset) (struct node_description *node);
int (*step) (struct node_description *node);
};
enum { NODE_00=0x40000000
, NODE_01, NODE_02, NODE_03, NODE_04, NODE_05, NODE_06, NODE_07, NODE_08, NODE_09,
NODE_10, NODE_11, NODE_12, NODE_13, NODE_14, NODE_15, NODE_16, NODE_17, NODE_18, NODE_19,
NODE_20, NODE_21, NODE_22, NODE_23, NODE_24, NODE_25, NODE_26, NODE_27, NODE_28, NODE_29,
NODE_30, NODE_31, NODE_32, NODE_33, NODE_34, NODE_35, NODE_36, NODE_37, NODE_38, NODE_39,
NODE_40, NODE_41, NODE_42, NODE_43, NODE_44, NODE_45, NODE_46, NODE_47, NODE_48, NODE_49,
NODE_50, NODE_51, NODE_52, NODE_53, NODE_54, NODE_55, NODE_56, NODE_57, NODE_58, NODE_59,
NODE_60, NODE_61, NODE_62, NODE_63, NODE_64, NODE_65, NODE_66, NODE_67, NODE_68, NODE_69,
NODE_70, NODE_71, NODE_72, NODE_73, NODE_74, NODE_75, NODE_76, NODE_77, NODE_78, NODE_79,
NODE_80, NODE_81, NODE_82, NODE_83, NODE_84, NODE_85, NODE_86, NODE_87, NODE_88, NODE_89,
NODE_90, NODE_91, NODE_92, NODE_93, NODE_94, NODE_95, NODE_96, NODE_97, NODE_98, NODE_99 };
# 490 "src/sound/discrete.h"
enum {
DSS_NULL,
DSS_CONSTANT,
DSS_INPUT,
DSS_NOISE,
DSS_SQUAREWAVE,
DSS_SINEWAVE,
DSS_ONESHOT,
DST_RCFILTER,
DST_GAIN,
DST_ADDER,
DSD_NE555,
DSO_OUTPUT
};
# 555 "src/sound/discrete.h"
int discrete_sh_start (const struct MachineSound *msound);
void discrete_sh_stop (void);
void discrete_sh_reset (void);
void discrete_sh_update (void);
void discrete_sound_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data8_t discrete_sound_r(offs_t offset __attribute__((__unused__)));
# 23 "src/sndintrf.h" 2
# 1 "src/sound/ay8910.h" 1
struct AY8910interface
{
int num;
int baseclock;
int mixing_level[5];
mem_read_handler portAread[5];
mem_read_handler portBread[5];
mem_write_handler portAwrite[5];
mem_write_handler portBwrite[5];
void (*handler[5])(int irq);
};
void AY8910_reset(int chip);
void AY8910_set_clock(int chip,int _clock);
void AY8910_set_volume(int chip,int channel,int volume);
void AY8910Write(int chip,int a,int data);
int AY8910Read(int chip);
data8_t AY8910_read_port_0_r(offs_t offset __attribute__((__unused__)));
data8_t AY8910_read_port_1_r(offs_t offset __attribute__((__unused__)));
data8_t AY8910_read_port_2_r(offs_t offset __attribute__((__unused__)));
data8_t AY8910_read_port_3_r(offs_t offset __attribute__((__unused__)));
data8_t AY8910_read_port_4_r(offs_t offset __attribute__((__unused__)));
data16_t AY8910_read_port_0_lsb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t AY8910_read_port_1_lsb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t AY8910_read_port_2_lsb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t AY8910_read_port_3_lsb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t AY8910_read_port_4_lsb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t AY8910_read_port_0_msb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t AY8910_read_port_1_msb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t AY8910_read_port_2_msb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t AY8910_read_port_3_msb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t AY8910_read_port_4_msb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_control_port_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void AY8910_control_port_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void AY8910_control_port_2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void AY8910_control_port_3_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void AY8910_control_port_4_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void AY8910_control_port_0_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_control_port_1_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_control_port_2_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_control_port_3_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_control_port_4_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_control_port_0_msb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_control_port_1_msb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_control_port_2_msb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_control_port_3_msb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_control_port_4_msb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_write_port_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void AY8910_write_port_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void AY8910_write_port_2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void AY8910_write_port_3_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void AY8910_write_port_4_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void AY8910_write_port_0_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_write_port_1_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_write_port_2_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_write_port_3_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_write_port_4_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_write_port_0_msb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_write_port_1_msb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_write_port_2_msb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_write_port_3_msb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void AY8910_write_port_4_msb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
int AY8910_sh_start(const struct MachineSound *msound);
# 26 "src/sndintrf.h" 2
# 1 "src/sound/2203intf.h" 1
# 1 "src/sound/ay8910.h" 1
# 5 "src/sound/2203intf.h" 2
# 13 "src/sound/2203intf.h"
data8_t YM2203_status_port_0_r(offs_t offset __attribute__((__unused__)));
data8_t YM2203_status_port_1_r(offs_t offset __attribute__((__unused__)));
data8_t YM2203_status_port_2_r(offs_t offset __attribute__((__unused__)));
data8_t YM2203_status_port_3_r(offs_t offset __attribute__((__unused__)));
data8_t YM2203_status_port_4_r(offs_t offset __attribute__((__unused__)));
data8_t YM2203_read_port_0_r(offs_t offset __attribute__((__unused__)));
data8_t YM2203_read_port_1_r(offs_t offset __attribute__((__unused__)));
data8_t YM2203_read_port_2_r(offs_t offset __attribute__((__unused__)));
data8_t YM2203_read_port_3_r(offs_t offset __attribute__((__unused__)));
data8_t YM2203_read_port_4_r(offs_t offset __attribute__((__unused__)));
void YM2203_control_port_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2203_control_port_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2203_control_port_2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2203_control_port_3_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2203_control_port_4_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2203_write_port_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2203_write_port_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2203_write_port_2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2203_write_port_3_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2203_write_port_4_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
int YM2203_sh_start(const struct MachineSound *msound);
void YM2203_sh_stop(void);
void YM2203_sh_reset(void);
void YM2203UpdateRequest(int chip);
# 29 "src/sndintrf.h" 2
# 1 "src/sound/2608intf.h" 1
# 1 "src/sound/fm.h" 1
# 101 "src/sound/fm.h"
typedef INT16 FMSAMPLE;
typedef unsigned long FMSAMPLE_MIX;
typedef void (*FM_TIMERHANDLER)(int n,int c,int cnt,double stepTime);
typedef void (*FM_IRQHANDLER)(int n,int irq);
# 134 "src/sound/fm.h"
int YM2203Init(int num, int baseclock, int rate,
FM_TIMERHANDLER TimerHandler,FM_IRQHANDLER IRQHandler);
void YM2203Shutdown(void);
void YM2203ResetChip(int num);
void YM2203UpdateOne(int num, INT16 *buffer, int length);
int YM2203Write(int n,int a,unsigned char v);
unsigned char YM2203Read(int n,int a);
int YM2203TimerOver(int n, int c);
int YM2608Init(int num, int baseclock, int rate,
void **pcmroma,int *pcmsizea,short *rhythmrom,int *rhythmpos,
FM_TIMERHANDLER TimerHandler,FM_IRQHANDLER IRQHandler);
void YM2608Shutdown(void);
void YM2608ResetChip(int num);
void YM2608UpdateOne(int num, INT16 **buffer, int length);
int YM2608Write(int n, int a,unsigned char v);
unsigned char YM2608Read(int n,int a);
int YM2608TimerOver(int n, int c );
int YM2610Init(int num, int baseclock, int rate,
void **pcmroma,int *pcmasize,void **pcmromb,int *pcmbsize,
FM_TIMERHANDLER TimerHandler,FM_IRQHANDLER IRQHandler);
void YM2610Shutdown(void);
void YM2610ResetChip(int num);
void YM2610UpdateOne(int num, INT16 **buffer, int length);
void YM2610BUpdateOne(int num, INT16 **buffer, int length);
int YM2610Write(int n, int a,unsigned char v);
unsigned char YM2610Read(int n,int a);
int YM2610TimerOver(int n, int c );
int YM2612Init(int num, int baseclock, int rate,
FM_TIMERHANDLER TimerHandler,FM_IRQHANDLER IRQHandler);
void YM2612Shutdown(void);
void YM2612ResetChip(int num);
void YM2612UpdateOne(int num, INT16 **buffer, int length);
int YM2612Write(int n, int a,unsigned char v);
unsigned char YM2612Read(int n,int a);
int YM2612TimerOver(int n, int c );
# 5 "src/sound/2608intf.h" 2
void YM2608UpdateRequest(int chip);
# 16 "src/sound/2608intf.h"
struct YM2608interface{
int num;
int baseclock;
int volumeSSG[5];
mem_read_handler portAread[5];
mem_read_handler portBread[5];
mem_write_handler portAwrite[5];
mem_write_handler portBwrite[5];
void ( *handler[5] )( int irq );
int pcmrom[(2)];
int volumeFM[(2)];
};
int YM2608_sh_start(const struct MachineSound *msound);
void YM2608_sh_stop(void);
void YM2608_sh_reset(void);
data8_t YM2608_status_port_0_A_r(offs_t offset __attribute__((__unused__)));
data8_t YM2608_status_port_0_B_r(offs_t offset __attribute__((__unused__)));
data8_t YM2608_read_port_0_r(offs_t offset __attribute__((__unused__)));
void YM2608_control_port_0_A_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2608_control_port_0_B_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2608_data_port_0_A_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2608_data_port_0_B_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data8_t YM2608_status_port_1_A_r(offs_t offset __attribute__((__unused__)));
data8_t YM2608_status_port_1_B_r(offs_t offset __attribute__((__unused__)));
data8_t YM2608_read_port_1_r(offs_t offset __attribute__((__unused__)));
void YM2608_control_port_1_A_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2608_control_port_1_B_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2608_data_port_1_A_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2608_data_port_1_B_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
# 32 "src/sndintrf.h" 2
# 1 "src/sound/2612intf.h" 1
# 1 "src/sound/fm.h" 1
# 5 "src/sound/2612intf.h" 2
void YM2612UpdateRequest(int chip);
# 1 "src/sound/ay8910.h" 1
# 9 "src/sound/2612intf.h" 2
int YM2612_sh_start(const struct MachineSound *msound);
void YM2612_sh_stop(void);
void YM2612_sh_reset(void);
data8_t YM2612_status_port_0_A_r(offs_t offset __attribute__((__unused__)));
data8_t YM2612_status_port_0_B_r(offs_t offset __attribute__((__unused__)));
data8_t YM2612_read_port_0_r(offs_t offset __attribute__((__unused__)));
void YM2612_control_port_0_A_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2612_control_port_0_B_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2612_data_port_0_A_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2612_data_port_0_B_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data8_t YM2612_status_port_1_A_r(offs_t offset __attribute__((__unused__)));
data8_t YM2612_status_port_1_B_r(offs_t offset __attribute__((__unused__)));
data8_t YM2612_read_port_1_r(offs_t offset __attribute__((__unused__)));
void YM2612_control_port_1_A_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2612_control_port_1_B_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2612_data_port_1_A_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2612_data_port_1_B_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
# 35 "src/sndintrf.h" 2
# 1 "src/sound/2151intf.h" 1
# 12 "src/sound/2151intf.h"
struct YM2151interface
{
int num;
int baseclock;
int volume[2];
void (*irqhandler[2])(int irq);
mem_write_handler portwritehandler[2];
};
data8_t YM2151_status_port_0_r(offs_t offset __attribute__((__unused__)));
data8_t YM2151_status_port_1_r(offs_t offset __attribute__((__unused__)));
data8_t YM2151_status_port_2_r(offs_t offset __attribute__((__unused__)));
void YM2151_register_port_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2151_register_port_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2151_register_port_2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2151_data_port_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2151_data_port_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2151_data_port_2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data16_t YM2151_status_port_0_lsb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t YM2151_status_port_1_lsb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t YM2151_status_port_2_lsb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2151_register_port_0_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2151_register_port_1_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2151_register_port_2_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2151_data_port_0_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2151_data_port_1_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2151_data_port_2_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
int YM2151_sh_start(const struct MachineSound *msound);
void YM2151_sh_stop(void);
void YM2151_sh_reset(void);
void YM2151UpdateRequest(int chip);
# 38 "src/sndintrf.h" 2
# 1 "src/sound/2608intf.h" 1
# 41 "src/sndintrf.h" 2
# 1 "src/sound/2610intf.h" 1
# 1 "src/sound/fm.h" 1
# 5 "src/sound/2610intf.h" 2
void YM2610UpdateRequest(int chip);
# 16 "src/sound/2610intf.h"
struct YM2610interface
{
int num;
int baseclock;
int volumeSSG[5];
mem_read_handler portAread[5];
mem_read_handler portBread[5];
mem_write_handler portAwrite[5];
mem_write_handler portBwrite[5];
void ( *handler[5] )( int irq );
int pcmromb[(2)];
int pcmroma[(2)];
int volumeFM[(2)];
};
int YM2610_sh_start(const struct MachineSound *msound);
int YM2610B_sh_start(const struct MachineSound *msound);
void YM2610_sh_stop(void);
void YM2610_sh_reset(void);
data8_t YM2610_status_port_0_A_r(offs_t offset __attribute__((__unused__)));
data16_t YM2610_status_port_0_A_lsb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data8_t YM2610_status_port_0_B_r(offs_t offset __attribute__((__unused__)));
data16_t YM2610_status_port_0_B_lsb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data8_t YM2610_read_port_0_r(offs_t offset __attribute__((__unused__)));
data16_t YM2610_read_port_0_lsb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2610_control_port_0_A_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2610_control_port_0_A_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2610_control_port_0_B_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2610_control_port_0_B_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2610_data_port_0_A_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2610_data_port_0_A_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2610_data_port_0_B_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2610_data_port_0_B_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data8_t YM2610_status_port_1_A_r(offs_t offset __attribute__((__unused__)));
data16_t YM2610_status_port_1_A_lsb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data8_t YM2610_status_port_1_B_r(offs_t offset __attribute__((__unused__)));
data16_t YM2610_status_port_1_B_lsb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data8_t YM2610_read_port_1_r(offs_t offset __attribute__((__unused__)));
data16_t YM2610_read_port_1_lsb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2610_control_port_1_A_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2610_control_port_1_A_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2610_control_port_1_B_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2610_control_port_1_B_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2610_data_port_1_A_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2610_data_port_1_A_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2610_data_port_1_B_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2610_data_port_1_B_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
# 44 "src/sndintrf.h" 2
# 1 "src/sound/3812intf.h" 1
struct YM3812interface
{
int num;
int baseclock;
int mixing_level[2];
void (*handler[2])(int linestate);
};
struct Y8950interface
{
int num;
int baseclock;
int mixing_level[2];
void (*handler[2])(int linestate);
int rom_region[2];
mem_read_handler keyboardread[2];
mem_write_handler keyboardwrite[2];
mem_read_handler portread[2];
mem_write_handler portwrite[2];
};
data8_t YM3812_status_port_0_r(offs_t offset __attribute__((__unused__)));
void YM3812_control_port_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM3812_write_port_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data8_t YM3812_status_port_1_r(offs_t offset __attribute__((__unused__)));
void YM3812_control_port_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM3812_write_port_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
int YM3812_sh_start(const struct MachineSound *msound);
void YM3812_sh_stop(void);
void YM3812_sh_reset(void);
# 51 "src/sound/3812intf.h"
int YM3526_sh_start(const struct MachineSound *msound);
data8_t Y8950_read_port_0_r(offs_t offset __attribute__((__unused__)));
data8_t Y8950_read_port_1_r(offs_t offset __attribute__((__unused__)));
int Y8950_sh_start(const struct MachineSound *msound);
# 47 "src/sndintrf.h" 2
# 1 "src/sound/2413intf.h" 1
struct YM2413interface
{
int num;
int baseclock;
int mixing_level[(4)];
};
void YM2413_register_port_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2413_register_port_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2413_register_port_2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2413_register_port_3_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2413_data_port_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2413_data_port_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2413_data_port_2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2413_data_port_3_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YM2413_register_port_0_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2413_register_port_1_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2413_register_port_2_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2413_register_port_3_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2413_data_port_0_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2413_data_port_1_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2413_data_port_2_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void YM2413_data_port_3_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
int YM2413_sh_start (const struct MachineSound *msound);
void YM2413_sh_stop (void);
void YM2413_sh_reset (void);
# 50 "src/sndintrf.h" 2
# 1 "src/sound/ymz280b.h" 1
# 17 "src/sound/ymz280b.h"
struct YMZ280Binterface
{
int num;
int baseclock[2];
int region[2];
int mixing_level[2];
void (*irq_callback[2])(int state);
};
int YMZ280B_sh_start(const struct MachineSound *msound);
void YMZ280B_sh_stop(void);
void YMZ280B_set_sample_base(int which, void *base);
data8_t YMZ280B_status_0_r(offs_t offset __attribute__((__unused__)));
data8_t YMZ280B_status_1_r(offs_t offset __attribute__((__unused__)));
void YMZ280B_register_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YMZ280B_register_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YMZ280B_data_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void YMZ280B_data_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
# 53 "src/sndintrf.h" 2
# 1 "src/sound/sn76477.h" 1
# 40 "src/sound/sn76477.h"
struct SN76477interface {
int num;
int mixing_level[4];
double noise_res[4];
double filter_res[4];
double filter_cap[4];
double decay_res[4];
double attack_decay_cap[4];
double attack_res[4];
double amplitude_res[4];
double feedback_res[4];
double vco_voltage[4];
double vco_cap[4];
double vco_res[4];
double pitch_voltage[4];
double slf_res[4];
double slf_cap[4];
double oneshot_cap[4];
double oneshot_res[4];
};
extern void SN76477_noise_clock_w(int chip, int data);
extern void SN76477_enable_w(int chip, int data);
extern void SN76477_mixer_w(int chip, int data);
extern void SN76477_mixer_a_w(int chip, int data);
extern void SN76477_mixer_b_w(int chip, int data);
extern void SN76477_mixer_c_w(int chip, int data);
extern void SN76477_envelope_w(int chip, int data);
extern void SN76477_envelope_1_w(int chip, int data);
extern void SN76477_envelope_2_w(int chip, int data);
extern void SN76477_vco_w(int chip, int data);
void SN76477_set_noise_res(int chip, double res);
void SN76477_set_filter_res(int chip, double res);
void SN76477_set_filter_cap(int chip, double cap);
void SN76477_set_decay_res(int chip, double res);
void SN76477_set_attack_decay_cap(int chip, double cap);
void SN76477_set_attack_res(int chip, double res);
void SN76477_set_amplitude_res(int chip, double res);
void SN76477_set_feedback_res(int chip, double res);
void SN76477_set_slf_res(int chip, double res);
void SN76477_set_slf_cap(int chip, double cap);
void SN76477_set_oneshot_res(int chip, double res);
void SN76477_set_oneshot_cap(int chip, double cap);
void SN76477_set_vco_res(int chip, double res);
void SN76477_set_vco_cap(int chip, double cap);
void SN76477_set_pitch_voltage(int chip, double voltage);
void SN76477_set_vco_voltage(int chip, double voltage);
int SN76477_sh_start(const struct MachineSound *msound);
void SN76477_sh_stop(void);
void SN76477_sh_update(void);
# 56 "src/sndintrf.h" 2
# 1 "src/sound/sn76496.h" 1
struct SN76496interface
{
int num;
int baseclock[4];
int volume[4];
};
int SN76496_sh_start(const struct MachineSound *msound);
void SN76496_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void SN76496_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void SN76496_2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void SN76496_3_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
# 59 "src/sndintrf.h" 2
# 1 "src/sound/pokey.h" 1
# 20 "src/sound/pokey.h"
# 1 "src/unix/osd_cpu.h" 1
# 21 "src/sound/pokey.h" 2
# 81 "src/sound/pokey.h"
struct POKEYinterface {
int num;
int baseclock;
int mixing_level[4];
mem_read_handler pot0_r[4];
mem_read_handler pot1_r[4];
mem_read_handler pot2_r[4];
mem_read_handler pot3_r[4];
mem_read_handler pot4_r[4];
mem_read_handler pot5_r[4];
mem_read_handler pot6_r[4];
mem_read_handler pot7_r[4];
mem_read_handler allpot_r[4];
mem_read_handler serin_r[4];
mem_write_handler serout_w[4];
void (*interrupt_cb[4])(int mask);
};
int pokey_sh_start (const struct MachineSound *msound);
void pokey_sh_stop (void);
data8_t pokey1_r(offs_t offset __attribute__((__unused__)));
data8_t pokey2_r(offs_t offset __attribute__((__unused__)));
data8_t pokey3_r(offs_t offset __attribute__((__unused__)));
data8_t pokey4_r(offs_t offset __attribute__((__unused__)));
data8_t quad_pokey_r(offs_t offset __attribute__((__unused__)));
void pokey1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void pokey2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void pokey3_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void pokey4_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void quad_pokey_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void pokey1_serin_ready (int after);
void pokey2_serin_ready (int after);
void pokey3_serin_ready (int after);
void pokey4_serin_ready (int after);
void pokey1_break_w (int shift);
void pokey2_break_w (int shift);
void pokey3_break_w (int shift);
void pokey4_break_w (int shift);
void pokey1_kbcode_w (int kbcode, int make);
void pokey2_kbcode_w (int kbcode, int make);
void pokey3_kbcode_w (int kbcode, int make);
void pokey4_kbcode_w (int kbcode, int make);
# 62 "src/sndintrf.h" 2
# 1 "src/sound/nes_apu.h" 1
# 27 "src/sound/nes_apu.h"
# 1 "src/driver.h" 1
# 28 "src/sound/nes_apu.h" 2
# 37 "src/sound/nes_apu.h"
struct NESinterface
{
int num;
int region[2];
int volume[2];
};
data8_t NESPSG_0_r(offs_t offset __attribute__((__unused__)));
data8_t NESPSG_1_r(offs_t offset __attribute__((__unused__)));
void NESPSG_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void NESPSG_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
extern int NESPSG_sh_start(const struct MachineSound *);
extern void NESPSG_sh_stop(void);
extern void NESPSG_sh_update(void);
# 66 "src/sndintrf.h" 2
# 1 "src/sound/astrocde.h" 1
struct astrocade_interface
{
int num;
int baseclock;
int volume[2];
};
int astrocade_sh_start(const struct MachineSound *msound);
void astrocade_sh_stop(void);
void astrocade_sh_update(void);
void astrocade_sound1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void astrocade_sound2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
# 72 "src/sndintrf.h" 2
# 1 "src/sound/namco.h" 1
struct namco_interface
{
int samplerate;
int voices;
int volume;
int region;
int stereo;
};
int namco_sh_start(const struct MachineSound *msound);
void namco_sh_stop(void);
void pengo_sound_enable_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void pengo_sound_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void polepos_sound_enable_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void polepos_sound_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void mappy_sound_enable_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void mappy_sound_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void namcos1_sound_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void namcos1_wavedata_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data8_t namcos1_sound_r(offs_t offset __attribute__((__unused__)));
data8_t namcos1_wavedata_r(offs_t offset __attribute__((__unused__)));
extern unsigned char *namco_soundregs;
extern unsigned char *namco_wavedata;
# 75 "src/sndintrf.h" 2
# 1 "src/sound/tms36xx.h" 1
# 12 "src/sound/tms36xx.h"
struct TMS36XXinterface {
int num;
int mixing_level[4];
int subtype[4];
int basefreq[4];
double decay[4][6];
double speed[4];
};
extern int tms36xx_sh_start(const struct MachineSound *msound);
extern void tms36xx_sh_stop(void);
extern void tms36xx_sh_update(void);
extern void mm6221aa_tune_w(int chip, int tune);
extern void tms36xx_note_w(int chip, int octave, int note);
extern void tms3617_enable_w(int chip, int enable);
# 78 "src/sndintrf.h" 2
# 1 "src/sound/5110intf.h" 1
struct TMS5110interface
{
int baseclock;
int mixing_level;
void (*irq)(int state);
int (*M0_callback)(void);
};
int tms5110_sh_start(const struct MachineSound *msound);
void tms5110_sh_stop(void);
void tms5110_sh_update(void);
void tms5110_CTL_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void tms5110_PDC_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data8_t tms5110_status_r(offs_t offset __attribute__((__unused__)));
int tms5110_ready_r(void);
void tms5110_reset(void);
void tms5110_set_frequency(int frequency);
# 81 "src/sndintrf.h" 2
# 1 "src/sound/5220intf.h" 1
struct TMS5220interface
{
int baseclock;
int mixing_level;
void (*irq)(int state);
};
int tms5220_sh_start(const struct MachineSound *msound);
void tms5220_sh_stop(void);
void tms5220_sh_update(void);
void tms5220_data_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data8_t tms5220_status_r(offs_t offset __attribute__((__unused__)));
int tms5220_ready_r(void);
int tms5220_int_r(void);
void tms5220_reset(void);
void tms5220_set_frequency(int frequency);
# 84 "src/sndintrf.h" 2
# 1 "src/sound/vlm5030.h" 1
struct VLM5030interface
{
int baseclock;
int volume;
int memory_region;
int memory_size;
const char **samplenames;
};
int VLM5030_sh_start(const struct MachineSound *msound);
void VLM5030_sh_stop (void);
void VLM5030_sh_update (void);
void VLM5030_set_rom(void *speech_rom);
int VLM5030_BSY(void);
void VLM5030_data_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void VLM5030_RST (int pin );
void VLM5030_VCU(int pin );
void VLM5030_ST(int pin );
# 87 "src/sndintrf.h" 2
# 1 "src/sound/adpcm.h" 1
# 9 "src/sound/adpcm.h"
struct ADPCMinterface
{
int num;
int frequency;
int region;
int mixing_level[8];
};
int ADPCM_sh_start(const struct MachineSound *msound);
void ADPCM_sh_stop(void);
void ADPCM_sh_update(void);
void ADPCM_play(int num, int offset, int length);
void ADPCM_setvol(int num, int vol);
void ADPCM_stop(int num);
int ADPCM_playing(int num);
# 37 "src/sound/adpcm.h"
struct OKIM6295interface
{
int num;
int frequency[2];
int region[2];
int mixing_level[2];
};
int OKIM6295_sh_start(const struct MachineSound *msound);
void OKIM6295_sh_stop(void);
void OKIM6295_sh_update(void);
void OKIM6295_set_bank_base(int which, int base);
void OKIM6295_set_frequency(int which, int frequency);
data8_t OKIM6295_status_0_r(offs_t offset __attribute__((__unused__)));
data8_t OKIM6295_status_1_r(offs_t offset __attribute__((__unused__)));
data16_t OKIM6295_status_0_lsb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t OKIM6295_status_1_lsb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t OKIM6295_status_0_msb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t OKIM6295_status_1_msb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void OKIM6295_data_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void OKIM6295_data_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void OKIM6295_data_0_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void OKIM6295_data_1_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void OKIM6295_data_0_msb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void OKIM6295_data_1_msb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
# 90 "src/sndintrf.h" 2
# 1 "src/sound/msm5205.h" 1
# 19 "src/sound/msm5205.h"
struct MSM5205interface
{
int num;
int baseclock;
void (*vclk_interrupt[4])(int);
int select[4];
int mixing_level[4];
};
int MSM5205_sh_start (const struct MachineSound *msound);
void MSM5205_sh_stop (void);
void MSM5205_sh_update (void);
void MSM5205_sh_reset (void);
void MSM5205_reset_w (int num, int reset);
void MSM5205_data_w (int num, int data);
void MSM5205_vclk_w (int num, int reset);
void MSM5205_playmode_w(int num,int _select);
void MSM5205_set_volume(int num,int volume);
# 93 "src/sndintrf.h" 2
# 1 "src/sound/upd7759.h" 1
# 16 "src/sound/upd7759.h"
struct UPD7759_interface
{
int num;
int clock_rate;
int volume[2];
int region[2];
int mode;
void (*irqcallback[2])(int param);
};
int UPD7759_sh_start (const struct MachineSound *msound);
void UPD7759_sh_stop (void);
void UPD7759_set_bank_base(int which, offs_t base);
void UPD7759_reset_w (int num, int data);
void UPD7759_message_w (int num, int which);
void UPD7759_start_w (int num, int playback);
int UPD7759_busy_r (int num);
int UPD7759_data_r (int num, int offs);
void UPD7759_0_message_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void UPD7759_0_start_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data8_t UPD7759_0_busy_r(offs_t offset __attribute__((__unused__)));
data8_t UPD7759_0_data_r(offs_t offset __attribute__((__unused__)));
data8_t UPD7759_1_data_r(offs_t offset __attribute__((__unused__)));
# 96 "src/sndintrf.h" 2
# 1 "src/sound/hc55516.h" 1
struct hc55516_interface
{
int num;
int volume[4];
};
int hc55516_sh_start(const struct MachineSound *msound);
void hc55516_digit_w(int num, int data);
void hc55516_clock_w(int num, int state);
void hc55516_clock_clear_w(int num, int data);
void hc55516_clock_set_w(int num, int data);
void hc55516_digit_clock_clear_w(int num, int data);
void hc55516_0_digit_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void hc55516_0_clock_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void hc55516_0_clock_clear_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void hc55516_0_clock_set_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void hc55516_0_digit_clock_clear_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
# 99 "src/sndintrf.h" 2
# 1 "src/sound/k005289.h" 1
struct k005289_interface
{
int master_clock;
int volume;
int region;
};
int K005289_sh_start(const struct MachineSound *msound);
void K005289_sh_stop(void);
void k005289_control_A_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void k005289_control_B_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void k005289_pitch_A_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void k005289_pitch_B_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void k005289_keylatch_A_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void k005289_keylatch_B_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
# 102 "src/sndintrf.h" 2
# 1 "src/sound/k007232.h" 1
# 10 "src/sound/k007232.h"
struct K007232_interface
{
int num_chips;
int bank[3];
int volume[3];
void (*portwritehandler[3])(int);
};
int K007232_sh_start(const struct MachineSound *msound);
void K007232_write_port_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void K007232_write_port_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void K007232_write_port_2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data8_t K007232_read_port_0_r(offs_t offset __attribute__((__unused__)));
data8_t K007232_read_port_1_r(offs_t offset __attribute__((__unused__)));
data8_t K007232_read_port_2_r(offs_t offset __attribute__((__unused__)));
void K007232_bankswitch(int chip,unsigned char *ptr_A,unsigned char *ptr_B);
# 39 "src/sound/k007232.h"
void K007232_set_volume(int chip,int channel,int volumeA,int volumeB);
# 105 "src/sndintrf.h" 2
# 1 "src/sound/k051649.h" 1
struct k051649_interface
{
int master_clock;
int volume;
};
int K051649_sh_start(const struct MachineSound *msound);
void K051649_sh_stop(void);
void K051649_waveform_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void K051649_volume_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void K051649_frequency_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void K051649_keyonoff_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void K052539_waveform_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
# 108 "src/sndintrf.h" 2
# 1 "src/sound/k053260.h" 1
# 11 "src/sound/k053260.h"
struct K053260_interface {
int num;
int clock[2];
int region[2];
int mixing_level[2][2];
void (*irq[2])( int param );
};
int K053260_sh_start( const struct MachineSound *msound );
void K053260_sh_stop( void );
void K053260_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void K053260_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data8_t K053260_0_r(offs_t offset __attribute__((__unused__)));
data8_t K053260_1_r(offs_t offset __attribute__((__unused__)));
void K053260_0_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t K053260_0_lsb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void K053260_1_lsb_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t K053260_1_lsb_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
# 111 "src/sndintrf.h" 2
# 1 "src/sound/k054539.h" 1
# 11 "src/sound/k054539.h"
struct K054539interface {
int num;
int clock;
int region[2];
int mixing_level[2][2];
void (*apan[2])(double, double);
void (*irq[2])( void );
};
int K054539_sh_start( const struct MachineSound *msound );
void K054539_sh_stop( void );
void K054539_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data8_t K054539_0_r(offs_t offset __attribute__((__unused__)));
void K054539_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data8_t K054539_1_r(offs_t offset __attribute__((__unused__)));
# 114 "src/sndintrf.h" 2
# 1 "src/sound/segapcm.h" 1
# 18 "src/sound/segapcm.h"
enum
{
L_PAN = 0,
R_PAN = 1,
LR_PAN = 2
};
typedef struct segapcm
{
char writeram[0x1000];
unsigned char gain[(16)][LR_PAN];
unsigned char addr_l[(16)];
unsigned char addr_h[(16)];
unsigned char bank[(16)];
unsigned char end_h[(16)];
unsigned char delta_t[(16)];
int vol[(16)][LR_PAN];
unsigned int add_addr[(16)];
unsigned int step[(16)];
int flag[(16)];
int bankshift;
int bankmask;
int pcmd[(16)];
int pcma[(16)];
} SEGAPCM;
struct SEGAPCMinterface
{
int mode;
int bank;
int region;
int volume;
};
enum SEGAPCM_samplerate
{
SEGAPCM_SAMPLE15K,
SEGAPCM_SAMPLE32K
};
int SEGAPCM_sh_start( const struct MachineSound *msound );
void SEGAPCM_sh_stop( void );
void SEGAPCM_sh_update( void );
int SEGAPCMInit( const struct MachineSound *msound, int banksize, int mode, unsigned char *inpcm, int volume );
void SEGAPCMShutdown( void );
void SEGAPCMResetChip( void );
void SegaPCM_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data8_t SegaPCM_r(offs_t offset __attribute__((__unused__)));
# 117 "src/sndintrf.h" 2
# 1 "src/sound/rf5c68.h" 1
# 11 "src/sound/rf5c68.h"
typedef struct rf5c68pcm
{
int clock;
unsigned char env[(8)];
unsigned char pan[(8)];
unsigned int addr[(8)];
unsigned int start[(8)];
unsigned int step[(8)];
unsigned int loop[(8)];
int pcmx[2][(8)];
int flag[(8)];
int pcmd[(8)];
int pcma[(8)];
} RF5C68PCM;
struct RF5C68interface
{
int clock;
int volume;
};
int RF5C68_sh_start( const struct MachineSound *msound );
void RF5C68_sh_stop( void );
void RF5C68_reg_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data8_t RF5C68_r(offs_t offset __attribute__((__unused__)));
void RF5C68_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
# 120 "src/sndintrf.h" 2
# 1 "src/sound/cem3394.h" 1
struct cem3394_interface
{
int numchips;
int volume[6];
double vco_zero_freq[6];
double filter_zero_freq[6];
void (*external[6])(int, int, short *);
};
enum
{
CEM3394_VCO_FREQUENCY = 0,
CEM3394_MODULATION_AMOUNT,
CEM3394_WAVE_SELECT,
CEM3394_PULSE_WIDTH,
CEM3394_MIXER_BALANCE,
CEM3394_FILTER_RESONANCE,
CEM3394_FILTER_FREQENCY,
CEM3394_FINAL_GAIN
};
int cem3394_sh_start(const struct MachineSound *msound);
void cem3394_sh_stop(void);
void cem3394_set_voltage(int chip, int input, double voltage);
# 44 "src/sound/cem3394.h"
double cem3394_get_parameter(int chip, int input);
# 123 "src/sndintrf.h" 2
# 1 "src/sound/c140.h" 1
int C140_sh_start( const struct MachineSound *msound );
void C140_sh_stop( void );
void C140_sh_update( void );
data8_t C140_r(offs_t offset __attribute__((__unused__)));
void C140_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
struct C140interface {
int frequency;
int region;
int mixing_level;
};
# 126 "src/sndintrf.h" 2
# 1 "src/sound/qsound.h" 1
# 12 "src/sound/qsound.h"
struct QSound_interface {
int clock;
int region;
int mixing_level[2];
};
int qsound_sh_start( const struct MachineSound *msound );
void qsound_sh_stop( void );
void qsound_data_h_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void qsound_data_l_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void qsound_cmd_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data8_t qsound_status_r(offs_t offset __attribute__((__unused__)));
# 129 "src/sndintrf.h" 2
# 1 "src/sound/saa1099.h" 1
# 11 "src/sound/saa1099.h"
struct SAA1099_interface
{
int numchips;
int volume[2][2];
};
int saa1099_sh_start(const struct MachineSound *msound);
void saa1099_sh_stop(void);
void saa1099_control_port_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void saa1099_write_port_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void saa1099_control_port_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void saa1099_write_port_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
# 132 "src/sndintrf.h" 2
# 1 "src/sound/iremga20.h" 1
# 9 "src/sound/iremga20.h"
struct IremGA20_interface {
int clock;
int region;
int mixing_level[2];
};
int IremGA20_sh_start( const struct MachineSound *msound );
void IremGA20_sh_stop( void );
void IremGA20_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data8_t IremGA20_r(offs_t offset __attribute__((__unused__)));
# 135 "src/sndintrf.h" 2
# 1 "src/sound/es5506.h" 1
# 13 "src/sound/es5506.h"
struct ES5505interface
{
int num;
int baseclock[2];
int region0[2];
int region1[2];
int mixing_level[2];
void (*irq_callback[2])(int state);
UINT16 (*read_port[2])(void);
};
int ES5505_sh_start(const struct MachineSound *msound);
void ES5505_sh_stop(void);
data16_t ES5505_data_0_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t ES5505_data_1_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void ES5505_data_0_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void ES5505_data_1_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
struct ES5506interface
{
int num;
int baseclock[2];
int region0[2];
int region1[2];
int region2[2];
int region3[2];
int mixing_level[2];
void (*irq_callback[2])(int state);
UINT16 (*read_port[2])(void);
};
int ES5506_sh_start(const struct MachineSound *msound);
void ES5506_sh_stop(void);
data8_t ES5506_data_0_r(offs_t offset __attribute__((__unused__)));
data8_t ES5506_data_1_r(offs_t offset __attribute__((__unused__)));
void ES5506_data_0_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void ES5506_data_1_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void ES5506_voice_bank_0_w(int voice, int bank);
void ES5506_voice_bank_1_w(int voice, int bank);
# 138 "src/sndintrf.h" 2
# 159 "src/sndintrf.h"
enum
{
SOUND_DUMMY,
SOUND_CUSTOM,
SOUND_SAMPLES,
SOUND_DAC,
SOUND_DISCRETE,
SOUND_AY8910,
SOUND_YM2203,
SOUND_YM2151,
SOUND_YM2608,
SOUND_YM2610,
SOUND_YM2610B,
SOUND_YM2612,
SOUND_YM3438,
SOUND_YM2413,
SOUND_YM3812,
SOUND_YM3526,
SOUND_YMZ280B,
SOUND_Y8950,
SOUND_SN76477,
SOUND_SN76496,
SOUND_POKEY,
SOUND_NES,
SOUND_ASTROCADE,
SOUND_NAMCO,
SOUND_TMS36XX,
SOUND_TMS5110,
SOUND_TMS5220,
SOUND_VLM5030,
SOUND_ADPCM,
SOUND_OKIM6295,
SOUND_MSM5205,
SOUND_UPD7759,
SOUND_HC55516,
SOUND_K005289,
SOUND_K007232,
SOUND_K051649,
SOUND_K053260,
SOUND_K054539,
SOUND_SEGAPCM,
SOUND_RF5C68,
SOUND_CEM3394,
SOUND_C140,
SOUND_QSOUND,
SOUND_SAA1099,
SOUND_IREMGA20,
SOUND_ES5505,
SOUND_ES5506,
# 318 "src/sndintrf.h"
SOUND_COUNT
};
struct CustomSound_interface
{
int (*sh_start)(const struct MachineSound *msound);
void (*sh_stop)(void);
void (*sh_update)(void);
};
int sound_start(void);
void sound_stop(void);
void sound_update(void);
void sound_reset(void);
const char *sound_name(const struct MachineSound *msound);
int sound_num(const struct MachineSound *msound);
int sound_clock(const struct MachineSound *msound);
int sound_scalebufferpos(int value);
data8_t soundlatch_r(offs_t offset __attribute__((__unused__)));
data8_t soundlatch2_r(offs_t offset __attribute__((__unused__)));
data8_t soundlatch3_r(offs_t offset __attribute__((__unused__)));
data8_t soundlatch4_r(offs_t offset __attribute__((__unused__)));
data16_t soundlatch_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t soundlatch2_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t soundlatch3_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data16_t soundlatch4_word_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void soundlatch_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void soundlatch2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void soundlatch3_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void soundlatch4_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void soundlatch_word_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void soundlatch2_word_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void soundlatch3_word_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void soundlatch4_word_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void soundlatch_clear_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void soundlatch2_clear_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void soundlatch3_clear_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void soundlatch4_clear_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void soundlatch_setclearedvalue(int value);
# 14 "src/driver.h" 2
# 1 "src/input.h" 1
# 15 "src/driver.h" 2
# 1 "src/inptport.h" 1
# 16 "src/driver.h" 2
# 1 "src/usrintrf.h" 1
# 12 "src/usrintrf.h"
struct DisplayText
{
const char *text;
int color;
int x;
int y;
};
# 28 "src/usrintrf.h"
struct GfxElement *builduifont(void);
void pick_uifont_colors(void);
void displaytext(struct osd_bitmap *bitmap,const struct DisplayText *dt);
void ui_text(struct osd_bitmap *bitmap,const char *buf,int x,int y);
void ui_drawbox(struct osd_bitmap *bitmap,int leftx,int topy,int width,int height);
void ui_displaymessagewindow(struct osd_bitmap *bitmap,const char *text);
void ui_displaymenu(struct osd_bitmap *bitmap,const char **items,const char **subitems,char *flag,int selected,int arrowize_subitem);
int showcopyright(struct osd_bitmap *bitmap);
int showgamewarnings(struct osd_bitmap *bitmap);
void set_ui_visarea (int xmin, int ymin, int xmax, int ymax);
void init_user_interface(void);
int handle_user_interface(struct osd_bitmap *bitmap);
int onscrd_active(void);
int setup_active(void);
void usrintf_showmessage(const char *text,...);
void usrintf_showmessage_secs(int seconds, const char *text,...);
# 17 "src/driver.h" 2
# 1 "src/cheat.h" 1
# 10 "src/cheat.h"
extern int he_did_cheat;
void InitCheat(void);
void StopCheat(void);
int cheat_menu(struct osd_bitmap *bitmap, int selection);
void DoCheat(struct osd_bitmap *bitmap);
# 18 "src/driver.h" 2
# 1 "src/tilemap.h" 1
struct tilemap;
# 42 "src/tilemap.h"
extern struct tile_info {
UINT32 tile_number;
const UINT8 *pen_data;
const UINT32 *pal_data;
UINT32 pen_usage;
UINT32 flags;
UINT32 priority;
UINT8 *mask_data;
} tile_info;
# 91 "src/tilemap.h"
extern struct osd_bitmap *priority_bitmap;
int tilemap_init( void );
void tilemap_close( void );
void tilemap_debug( struct tilemap *tilemap );
struct tilemap *tilemap_create(
void (*tile_get_info)( int memory_offset ),
UINT32 (*get_memory_offset)( UINT32 col, UINT32 row, UINT32 num_cols, UINT32 num_rows ),
int type,
int tile_width, int tile_height,
int num_cols, int num_rows
);
void tilemap_dispose( struct tilemap *tilemap );
void tilemap_set_transparent_pen( struct tilemap *tilemap, int pen );
void tilemap_set_transmask( struct tilemap *tilemap, int which, UINT32 penmask );
void tilemap_set_depth( struct tilemap *tilemap, int tile_depth, int tile_granularity );
void tilemap_mark_tile_dirty( struct tilemap *tilemap, int memory_offset );
void tilemap_mark_all_tiles_dirty( struct tilemap *tilemap );
void tilemap_dirty_palette( const UINT8 *dirty_pens );
void tilemap_dirty_color( int color );
void tilemap_set_scroll_rows( struct tilemap *tilemap, int scroll_rows );
void tilemap_set_scrolldx( struct tilemap *tilemap, int dx, int dx_if_flipped );
void tilemap_set_scrollx( struct tilemap *tilemap, int row, int value );
void tilemap_set_scroll_cols( struct tilemap *tilemap, int scroll_cols );
void tilemap_set_scrolldy( struct tilemap *tilemap, int dy, int dy_if_flipped );
void tilemap_set_scrolly( struct tilemap *tilemap, int col, int value );
void tilemap_set_flip( struct tilemap *tilemap, int attributes );
void tilemap_set_clip( struct tilemap *tilemap, const struct rectangle *clip );
void tilemap_set_enable( struct tilemap *tilemap, int enable );
void tilemap_update( struct tilemap *tilemap );
void tilemap_draw( struct osd_bitmap *dest, struct tilemap *tilemap, UINT32 flags, UINT32 priority );
struct osd_bitmap *tilemap_get_pixmap( struct tilemap * tilemap );
UINT32 tilemap_scan_cols( UINT32 col, UINT32 row, UINT32 num_cols, UINT32 num_rows );
UINT32 tilemap_scan_rows( UINT32 col, UINT32 row, UINT32 num_cols, UINT32 num_rows );
# 19 "src/driver.h" 2
# 1 "src/sprite.h" 1
# 13 "src/sprite.h"
typedef enum {
SPRITE_TYPE_STACK = 0,
SPRITE_TYPE_UNPACK,
SPRITE_TYPE_ZOOM
} SpriteType;
struct sprite {
int priority, flags;
const UINT8 *pen_data;
int line_offset;
const UINT32 *pal_data;
UINT32 pen_usage;
int x_offset, y_offset;
int tile_width, tile_height;
int total_width, total_height;
int x, y;
int shadow_pen;
const struct sprite *next;
long mask_offset;
};
# 46 "src/sprite.h"
struct sprite_list {
SpriteType sprite_type;
int num_sprites;
int flags;
int max_priority;
int transparent_pen;
int special_pen;
struct sprite *sprite;
struct sprite_list *next;
};
void sprite_init( void );
void sprite_close( void );
struct sprite_list *sprite_list_create( int num_sprites, int flags );
void sprite_update( void );
void sprite_draw( struct sprite_list *sprite_list, int priority );
void sprite_set_shade_table(UINT32 *table);
# 20 "src/driver.h" 2
# 1 "src/profiler.h" 1
enum {
PROFILER_END = -1,
PROFILER_CPU1 = 0,
PROFILER_CPU2,
PROFILER_CPU3,
PROFILER_CPU4,
PROFILER_CPU5,
PROFILER_CPU6,
PROFILER_CPU7,
PROFILER_CPU8,
PROFILER_MEMREAD,
PROFILER_MEMWRITE,
PROFILER_VIDEO,
PROFILER_DRAWGFX,
PROFILER_COPYBITMAP,
PROFILER_TILEMAP_UPDATE,
PROFILER_TILEMAP_DRAW,
PROFILER_BLIT,
PROFILER_SOUND,
PROFILER_MIXER,
PROFILER_TIMER_CALLBACK,
PROFILER_HISCORE,
PROFILER_INPUT,
PROFILER_EXTRA,
PROFILER_USER1,
PROFILER_USER2,
PROFILER_USER3,
PROFILER_USER4,
PROFILER_PROFILER,
PROFILER_IDLE,
PROFILER_TOTAL
};
# 59 "src/profiler.h"
void profiler__mark(int type);
void profiler_start(void);
void profiler_stop(void);
void profiler_show(struct osd_bitmap *bitmap);
# 21 "src/driver.h" 2
# 35 "src/driver.h"
struct MachineDriver
{
const struct MachineCPU cpu[8];
float frames_per_second;
int vblank_duration;
int cpu_slices_per_frame;
void (*init_machine)(void);
int screen_width,screen_height;
const struct rectangle default_visible_area;
const struct GfxDecodeInfo *gfxdecodeinfo;
unsigned int total_colors;
unsigned int color_table_len;
void (*vh_init_palette)(unsigned char *palette, unsigned short *colortable,const unsigned char *color_prom);
int video_attributes;
void (*vh_eof_callback)(void);
int (*vh_start)(void);
void (*vh_stop)(void);
void (*vh_update)(struct osd_bitmap *bitmap,int full_refresh);
int sound_attributes;
int obsolete1;
int obsolete2;
int obsolete3;
const struct MachineSound sound[5];
# 90 "src/driver.h"
void (*nvram_handler)(void *file,int read_or_write);
};
# 161 "src/driver.h"
struct GameDriver
{
const char *source_file;
const struct GameDriver *clone_of;
const char *name;
const char *description;
const char *year;
const char *manufacturer;
const struct MachineDriver *drv;
const struct InputPortTiny *input_ports;
void (*driver_init)(void);
const struct RomModule *rom;
UINT32 flags;
};
# 259 "src/driver.h"
extern const struct GameDriver *drivers[];
# 195 "src/vidhrdw/megasys1.c" 2
# 1 "src/vidhrdw/generic.h" 1
# 1 "src/driver.h" 1
# 2 "src/vidhrdw/generic.h" 2
extern data8_t *videoram;
extern data16_t *videoram16;
extern data32_t *videoram32;
extern size_t videoram_size;
extern data8_t *colorram;
extern data16_t *colorram16;
extern data32_t *colorram32;
extern data8_t *spriteram;
extern data16_t *spriteram16;
extern data32_t *spriteram32;
extern data8_t *spriteram_2;
extern data16_t *spriteram16_2;
extern data32_t *spriteram32_2;
extern data8_t *spriteram_3;
extern data16_t *spriteram16_3;
extern data32_t *spriteram32_3;
extern data8_t *buffered_spriteram;
extern data16_t *buffered_spriteram16;
extern data32_t *buffered_spriteram32;
extern data8_t *buffered_spriteram_2;
extern data16_t *buffered_spriteram16_2;
extern data32_t *buffered_spriteram32_2;
extern size_t spriteram_size;
extern size_t spriteram_2_size;
extern size_t spriteram_3_size;
extern data8_t *dirtybuffer;
extern data16_t *dirtybuffer16;
extern data32_t *dirtybuffer32;
extern struct osd_bitmap *tmpbitmap;
int generic_vh_start(void);
int generic_bitmapped_vh_start(void);
void generic_vh_stop(void);
void generic_bitmapped_vh_stop(void);
void generic_bitmapped_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh);
data8_t videoram_r(offs_t offset __attribute__((__unused__)));
data8_t colorram_r(offs_t offset __attribute__((__unused__)));
void videoram_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void colorram_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data8_t spriteram_r(offs_t offset __attribute__((__unused__)));
void spriteram_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
data16_t spriteram16_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void spriteram16_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
data8_t spriteram_2_r(offs_t offset __attribute__((__unused__)));
void spriteram_2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void buffer_spriteram_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void buffer_spriteram16_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void buffer_spriteram32_w(offs_t offset __attribute__((__unused__)), data32_t data __attribute__((__unused__)), data32_t mem_mask __attribute__((__unused__)));
void buffer_spriteram_2_w(offs_t offset __attribute__((__unused__)), data8_t data __attribute__((__unused__)));
void buffer_spriteram16_2_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void buffer_spriteram32_2_w(offs_t offset __attribute__((__unused__)), data32_t data __attribute__((__unused__)), data32_t mem_mask __attribute__((__unused__)));
void buffer_spriteram(unsigned char *ptr,int length);
void buffer_spriteram_2(unsigned char *ptr,int length);
# 196 "src/vidhrdw/megasys1.c" 2
# 1 "src/drivers/megasys1.h" 1
# 176 "src/drivers/megasys1.h"
extern data16_t *megasys1_scrollram_0, *megasys1_scrollram_1, *megasys1_scrollram_2;
extern data16_t *megasys1_objectram, *megasys1_vregs, *megasys1_ram;
extern int megasys1_scroll_flag[3], megasys1_scrollx[3], megasys1_scrolly[3], megasys1_pages_per_tmap_x[3], megasys1_pages_per_tmap_y[3];
extern int megasys1_active_layers, megasys1_sprite_bank;
extern int megasys1_screen_flag, megasys1_sprite_flag;
extern int megasys1_bits_per_color_code;
extern int megasys1_8x8_scroll_0_factor, megasys1_16x16_scroll_0_factor;
extern int megasys1_8x8_scroll_1_factor, megasys1_16x16_scroll_1_factor;
extern int megasys1_8x8_scroll_2_factor, megasys1_16x16_scroll_2_factor;
int megasys1_vh_start(void);
void megasys1_scrollram_0_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void megasys1_scrollram_1_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void megasys1_scrollram_2_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)));
void megasys1_scroll_0_flag_w(int data);
void megasys1_scroll_1_flag_w(int data);
void megasys1_scroll_2_flag_w(int data);
# 197 "src/vidhrdw/megasys1.c" 2
static struct tilemap *megasys1_tmap[3];
data16_t *megasys1_scrollram_0, *megasys1_scrollram_1, *megasys1_scrollram_2;
data16_t *megasys1_objectram, *megasys1_vregs, *megasys1_ram;
int megasys1_scroll_flag[3], megasys1_scrollx[3], megasys1_scrolly[3], megasys1_pages_per_tmap_x[3], megasys1_pages_per_tmap_y[3];
int megasys1_active_layers, megasys1_sprite_bank;
int megasys1_screen_flag, megasys1_sprite_flag;
int megasys1_bits_per_color_code;
int megasys1_8x8_scroll_0_factor, megasys1_16x16_scroll_0_factor;
int megasys1_8x8_scroll_1_factor, megasys1_16x16_scroll_1_factor;
int megasys1_8x8_scroll_2_factor, megasys1_16x16_scroll_2_factor;
static int hardware_type_z;
# 248 "src/vidhrdw/megasys1.c"
extern struct GameDriver driver_lomakai;
extern struct GameDriver driver_soldamj;
int megasys1_vh_start(void)
{
int i;
spriteram16 = &megasys1_ram[0x8000/2];
megasys1_tmap[0] = megasys1_tmap[1] = megasys1_tmap[2] = ((void *)0);
megasys1_active_layers = megasys1_sprite_bank = megasys1_screen_flag = megasys1_sprite_flag = 0;
for (i = 0; i < 3; i ++)
{
megasys1_scroll_flag[i] = megasys1_scrollx[i] = megasys1_scrolly[i] = 0;
megasys1_pages_per_tmap_x[i] = megasys1_pages_per_tmap_y[i] = 0;
}
megasys1_bits_per_color_code = 4;
# 286 "src/vidhrdw/megasys1.c"
megasys1_8x8_scroll_0_factor = 1; megasys1_16x16_scroll_0_factor = 4;
megasys1_8x8_scroll_1_factor = 1; megasys1_16x16_scroll_1_factor = 4;
megasys1_8x8_scroll_2_factor = 1; megasys1_16x16_scroll_2_factor = 4;
if (Machine->gamedrv == &driver_soldamj)
{
megasys1_8x8_scroll_1_factor = 4; megasys1_16x16_scroll_1_factor = 4;
}
hardware_type_z = 0;
if (Machine->gamedrv == &driver_lomakai ||
Machine->gamedrv->clone_of == &driver_lomakai )
hardware_type_z = 1;
return 0;
}
# 371 "src/vidhrdw/megasys1.c"
void megasys1_get_scroll_0_tile_info_8x8(int tile_index) { data16_t code = megasys1_scrollram_0[tile_index]; { const struct GfxElement *gfx = Machine->gfx[(0)]; int _code = ((code & 0xfff) * megasys1_8x8_scroll_0_factor) % gfx->total_elements; tile_info.tile_number = _code; tile_info.pen_data = gfx->gfxdata + _code*gfx->char_modulo; tile_info.pal_data = &gfx->colortable[gfx->color_granularity * (code >> (16 - megasys1_bits_per_color_code))]; tile_info.pen_usage = gfx->pen_usage?gfx->pen_usage[_code]:0; } } void megasys1_get_scroll_0_tile_info_16x16(int tile_index) { data16_t code = megasys1_scrollram_0[tile_index/4]; { const struct GfxElement *gfx = Machine->gfx[(0)]; int _code = ((code & 0xfff) * megasys1_16x16_scroll_0_factor + (tile_index & 3)) % gfx->total_elements; tile_info.tile_number = _code; tile_info.pen_data = gfx->gfxdata + _code*gfx->char_modulo; tile_info.pal_data = &gfx->colortable[gfx->color_granularity * (code >> (16-megasys1_bits_per_color_code))]; tile_inf!
o.pen_usage = gfx->pen_usage?gfx->pen_usage[_code]:0; }; } UINT32 megasys1_0_scan_8x8(UINT32 col,UINT32 row,UINT32 num_cols,UINT32 num_rows) { return (col * (0x20)) + (row / (0x20)) * ((0x20) * (0x20)) * megasys1_pages_per_tmap_x[0] + (row % (0x20)); }UINT32 megasys1_0_scan_16x16(UINT32 col,UINT32 row,UINT32 num_cols,UINT32 num_rows) { return ( ((col / 2) * ((0x20) / 2)) + ((row / 2) / ((0x20) / 2)) * (((0x20) * (0x20)) / 4) * megasys1_pages_per_tmap_x[0] + ((row / 2) % ((0x20) / 2)) )*4 + (row&1) + (col&1)*2; }
void megasys1_get_scroll_1_tile_info_8x8(int tile_index) { data16_t code = megasys1_scrollram_1[tile_index]; { const struct GfxElement *gfx = Machine->gfx[(1)]; int _code = ((code & 0xfff) * megasys1_8x8_scroll_1_factor) % gfx->total_elements; tile_info.tile_number = _code; tile_info.pen_data = gfx->gfxdata + _code*gfx->char_modulo; tile_info.pal_data = &gfx->colortable[gfx->color_granularity * (code >> (16 - megasys1_bits_per_color_code))]; tile_info.pen_usage = gfx->pen_usage?gfx->pen_usage[_code]:0; } } void megasys1_get_scroll_1_tile_info_16x16(int tile_index) { data16_t code = megasys1_scrollram_1[tile_index/4]; { const struct GfxElement *gfx = Machine->gfx[(1)]; int _code = ((code & 0xfff) * megasys1_16x16_scroll_1_factor + (tile_index & 3)) % gfx->total_elements; tile_info.tile_number = _code; tile_info.pen_data = gfx->gfxdata + _code*gfx->char_modulo; tile_info.pal_data = &gfx->colortable[gfx->color_granularity * (code >> (16-megasys1_bits_per_color_code))]; tile_inf!
o.pen_usage = gfx->pen_usage?gfx->pen_usage[_code]:0; }; } UINT32 megasys1_1_scan_8x8(UINT32 col,UINT32 row,UINT32 num_cols,UINT32 num_rows) { return (col * (0x20)) + (row / (0x20)) * ((0x20) * (0x20)) * megasys1_pages_per_tmap_x[1] + (row % (0x20)); }UINT32 megasys1_1_scan_16x16(UINT32 col,UINT32 row,UINT32 num_cols,UINT32 num_rows) { return ( ((col / 2) * ((0x20) / 2)) + ((row / 2) / ((0x20) / 2)) * (((0x20) * (0x20)) / 4) * megasys1_pages_per_tmap_x[1] + ((row / 2) % ((0x20) / 2)) )*4 + (row&1) + (col&1)*2; }
void megasys1_get_scroll_2_tile_info_8x8(int tile_index) { data16_t code = megasys1_scrollram_2[tile_index]; { const struct GfxElement *gfx = Machine->gfx[(2)]; int _code = ((code & 0xfff) * megasys1_8x8_scroll_2_factor) % gfx->total_elements; tile_info.tile_number = _code; tile_info.pen_data = gfx->gfxdata + _code*gfx->char_modulo; tile_info.pal_data = &gfx->colortable[gfx->color_granularity * (code >> (16 - megasys1_bits_per_color_code))]; tile_info.pen_usage = gfx->pen_usage?gfx->pen_usage[_code]:0; } } void megasys1_get_scroll_2_tile_info_16x16(int tile_index) { data16_t code = megasys1_scrollram_2[tile_index/4]; { const struct GfxElement *gfx = Machine->gfx[(2)]; int _code = ((code & 0xfff) * megasys1_16x16_scroll_2_factor + (tile_index & 3)) % gfx->total_elements; tile_info.tile_number = _code; tile_info.pen_data = gfx->gfxdata + _code*gfx->char_modulo; tile_info.pal_data = &gfx->colortable[gfx->color_granularity * (code >> (16-megasys1_bits_per_color_code))]; tile_inf!
o.pen_usage = gfx->pen_usage?gfx->pen_usage[_code]:0; }; } UINT32 megasys1_2_scan_8x8(UINT32 col,UINT32 row,UINT32 num_cols,UINT32 num_rows) { return (col * (0x20)) + (row / (0x20)) * ((0x20) * (0x20)) * megasys1_pages_per_tmap_x[2] + (row % (0x20)); }UINT32 megasys1_2_scan_16x16(UINT32 col,UINT32 row,UINT32 num_cols,UINT32 num_rows) { return ( ((col / 2) * ((0x20) / 2)) + ((row / 2) / ((0x20) / 2)) * (((0x20) * (0x20)) / 4) * megasys1_pages_per_tmap_x[2] + ((row / 2) % ((0x20) / 2)) )*4 + (row&1) + (col&1)*2; }
void megasys1_scrollram_0_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__))) { data16_t old_data = megasys1_scrollram_0[offset]; data16_t new_data = (*(&megasys1_scrollram_0[offset]) = (*(&megasys1_scrollram_0[offset]) & mem_mask) | (data & ~mem_mask)); if (old_data != new_data) { if ( (offset < 0x40000/2) && (megasys1_tmap[0]) ) { int tile_index = offset; if (megasys1_scroll_flag[0] & 0x10) { tilemap_mark_tile_dirty(megasys1_tmap[0], tile_index ); } else { tilemap_mark_tile_dirty(megasys1_tmap[0], tile_index*4 + 0); tilemap_mark_tile_dirty(megasys1_tmap[0], tile_index*4 + 1); tilemap_mark_tile_dirty(megasys1_tmap[0], tile_index*4 + 2); tilemap_mark_tile_dirty(megasys1_tmap[0], tile_index*4 + 3); } } }}
void megasys1_scrollram_1_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__))) { data16_t old_data = megasys1_scrollram_1[offset]; data16_t new_data = (*(&megasys1_scrollram_1[offset]) = (*(&megasys1_scrollram_1[offset]) & mem_mask) | (data & ~mem_mask)); if (old_data != new_data) { if ( (offset < 0x40000/2) && (megasys1_tmap[1]) ) { int tile_index = offset; if (megasys1_scroll_flag[1] & 0x10) { tilemap_mark_tile_dirty(megasys1_tmap[1], tile_index ); } else { tilemap_mark_tile_dirty(megasys1_tmap[1], tile_index*4 + 0); tilemap_mark_tile_dirty(megasys1_tmap[1], tile_index*4 + 1); tilemap_mark_tile_dirty(megasys1_tmap[1], tile_index*4 + 2); tilemap_mark_tile_dirty(megasys1_tmap[1], tile_index*4 + 3); } } }}
void megasys1_scrollram_2_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__))) { data16_t old_data = megasys1_scrollram_2[offset]; data16_t new_data = (*(&megasys1_scrollram_2[offset]) = (*(&megasys1_scrollram_2[offset]) & mem_mask) | (data & ~mem_mask)); if (old_data != new_data) { if ( (offset < 0x40000/2) && (megasys1_tmap[2]) ) { int tile_index = offset; if (megasys1_scroll_flag[2] & 0x10) { tilemap_mark_tile_dirty(megasys1_tmap[2], tile_index ); } else { tilemap_mark_tile_dirty(megasys1_tmap[2], tile_index*4 + 0); tilemap_mark_tile_dirty(megasys1_tmap[2], tile_index*4 + 1); tilemap_mark_tile_dirty(megasys1_tmap[2], tile_index*4 + 2); tilemap_mark_tile_dirty(megasys1_tmap[2], tile_index*4 + 3); } } }}
# 424 "src/vidhrdw/megasys1.c"
void megasys1_scroll_0_flag_w(int data) { if ((megasys1_scroll_flag[0] != data) || (megasys1_tmap[0] == 0) ) { megasys1_scroll_flag[0] = data; if (megasys1_tmap[0]) tilemap_dispose(megasys1_tmap[0]); megasys1_pages_per_tmap_x[0] = 16 / ( 1 << (megasys1_scroll_flag[0] & 0x3) ); megasys1_pages_per_tmap_y[0] = 32 / megasys1_pages_per_tmap_x[0]; if (megasys1_scroll_flag[0] & 0x10) { if (megasys1_pages_per_tmap_y[0] > 4) { megasys1_pages_per_tmap_x[0] /= 1; megasys1_pages_per_tmap_y[0] /= 4;} else { megasys1_pages_per_tmap_x[0] /= 2; megasys1_pages_per_tmap_y[0] /= 2;} } if ((megasys1_tmap[0] = tilemap_create ( (megasys1_scroll_flag[0] & 0x10) ? megasys1_get_scroll_0_tile_info_8x8 : megasys1_get_scroll_0_tile_info_16x16, (megasys1_scroll_flag[0] & 0x10) ? megasys1_0_scan_8x8 : megasys1_0_scan_16x16, 0x01, 8,8, (0x20) * megasys1_pages_per_tmap_x[0], (0x20) * megasys1_pages_per_tmap_y[0] ) )) tilemap_set_transparent_pen(megasys1_tmap[0],15); } }
void megasys1_scroll_1_flag_w(int data) { if ((megasys1_scroll_flag[1] != data) || (megasys1_tmap[1] == 0) ) { megasys1_scroll_flag[1] = data; if (megasys1_tmap[1]) tilemap_dispose(megasys1_tmap[1]); megasys1_pages_per_tmap_x[1] = 16 / ( 1 << (megasys1_scroll_flag[1] & 0x3) ); megasys1_pages_per_tmap_y[1] = 32 / megasys1_pages_per_tmap_x[1]; if (megasys1_scroll_flag[1] & 0x10) { if (megasys1_pages_per_tmap_y[1] > 4) { megasys1_pages_per_tmap_x[1] /= 1; megasys1_pages_per_tmap_y[1] /= 4;} else { megasys1_pages_per_tmap_x[1] /= 2; megasys1_pages_per_tmap_y[1] /= 2;} } if ((megasys1_tmap[1] = tilemap_create ( (megasys1_scroll_flag[1] & 0x10) ? megasys1_get_scroll_1_tile_info_8x8 : megasys1_get_scroll_1_tile_info_16x16, (megasys1_scroll_flag[1] & 0x10) ? megasys1_1_scan_8x8 : megasys1_1_scan_16x16, 0x01, 8,8, (0x20) * megasys1_pages_per_tmap_x[1], (0x20) * megasys1_pages_per_tmap_y[1] ) )) tilemap_set_transparent_pen(megasys1_tmap[1],15); } }
void megasys1_scroll_2_flag_w(int data) { if ((megasys1_scroll_flag[2] != data) || (megasys1_tmap[2] == 0) ) { megasys1_scroll_flag[2] = data; if (megasys1_tmap[2]) tilemap_dispose(megasys1_tmap[2]); megasys1_pages_per_tmap_x[2] = 16 / ( 1 << (megasys1_scroll_flag[2] & 0x3) ); megasys1_pages_per_tmap_y[2] = 32 / megasys1_pages_per_tmap_x[2]; if (megasys1_scroll_flag[2] & 0x10) { if (megasys1_pages_per_tmap_y[2] > 4) { megasys1_pages_per_tmap_x[2] /= 1; megasys1_pages_per_tmap_y[2] /= 4;} else { megasys1_pages_per_tmap_x[2] /= 2; megasys1_pages_per_tmap_y[2] /= 2;} } if ((megasys1_tmap[2] = tilemap_create ( (megasys1_scroll_flag[2] & 0x10) ? megasys1_get_scroll_2_tile_info_8x8 : megasys1_get_scroll_2_tile_info_16x16, (megasys1_scroll_flag[2] & 0x10) ? megasys1_2_scan_8x8 : megasys1_2_scan_16x16, 0x01, 8,8, (0x20) * megasys1_pages_per_tmap_x[2], (0x20) * megasys1_pages_per_tmap_y[2] ) )) tilemap_set_transparent_pen(megasys1_tmap[2],15); } }
void megasys1_vregs_A_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)))
{
data16_t new_data = (*(&megasys1_vregs[offset]) = (*(&megasys1_vregs[offset]) & mem_mask) | (data & ~mem_mask));
switch (offset)
{
case 0x000/2 : megasys1_active_layers = new_data; break;
case 0x008/2+0 : megasys1_scrollx[2] = new_data; break;
case 0x008/2+1 : megasys1_scrolly[2] = new_data; break;
case 0x008/2+2 : megasys1_scroll_2_flag_w(new_data); if (megasys1_tmap[2] == 0) { char buf[80]; sprintf(buf,"vreg %04X <- %04X NO MEMORY FOR SCREEN",offset*2,data); logerror("CPU #0 PC %06X : Warning, %s\n",cpu_get_pc(), buf); }; break;
case 0x200/2+0 : megasys1_scrollx[0] = new_data; break;
case 0x200/2+1 : megasys1_scrolly[0] = new_data; break;
case 0x200/2+2 : megasys1_scroll_0_flag_w(new_data); if (megasys1_tmap[0] == 0) { char buf[80]; sprintf(buf,"vreg %04X <- %04X NO MEMORY FOR SCREEN",offset*2,data); logerror("CPU #0 PC %06X : Warning, %s\n",cpu_get_pc(), buf); }; break;
case 0x208/2+0 : megasys1_scrollx[1] = new_data; break;
case 0x208/2+1 : megasys1_scrolly[1] = new_data; break;
case 0x208/2+2 : megasys1_scroll_1_flag_w(new_data); if (megasys1_tmap[1] == 0) { char buf[80]; sprintf(buf,"vreg %04X <- %04X NO MEMORY FOR SCREEN",offset*2,data); logerror("CPU #0 PC %06X : Warning, %s\n",cpu_get_pc(), buf); }; break;
case 0x100/2 : megasys1_sprite_flag = new_data; break;
case 0x300/2 : megasys1_screen_flag = new_data;
if (new_data & 0x10)
cpu_set_reset_line(1,1);
else
cpu_set_reset_line(1,0);
break;
case 0x308/2 : soundlatch_word_w(0,new_data,0);
cpu_cause_interrupt(1,4);
break;
default : { char buf[80]; sprintf(buf,"vreg %04X <- %04X",offset*2,data); logerror("CPU #0 PC %06X : Warning, %s\n",cpu_get_pc(), buf); };
}
}
data16_t megasys1_vregs_C_r(offs_t offset __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)))
{
switch (offset)
{
case 0x8000/2: return soundlatch2_word_r(0,0);
default: return megasys1_vregs[offset];
}
}
void megasys1_vregs_C_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)))
{
data16_t new_data = (*(&megasys1_vregs[offset]) = (*(&megasys1_vregs[offset]) & mem_mask) | (data & ~mem_mask));
switch (offset)
{
case 0x2000/2+0 : megasys1_scrollx[0] = new_data; break;
case 0x2000/2+1 : megasys1_scrolly[0] = new_data; break;
case 0x2000/2+2 : megasys1_scroll_0_flag_w(new_data); if (megasys1_tmap[0] == 0) { char buf[80]; sprintf(buf,"vreg %04X <- %04X NO MEMORY FOR SCREEN",offset*2,data); logerror("CPU #0 PC %06X : Warning, %s\n",cpu_get_pc(), buf); }; break;
case 0x2008/2+0 : megasys1_scrollx[1] = new_data; break;
case 0x2008/2+1 : megasys1_scrolly[1] = new_data; break;
case 0x2008/2+2 : megasys1_scroll_1_flag_w(new_data); if (megasys1_tmap[1] == 0) { char buf[80]; sprintf(buf,"vreg %04X <- %04X NO MEMORY FOR SCREEN",offset*2,data); logerror("CPU #0 PC %06X : Warning, %s\n",cpu_get_pc(), buf); }; break;
case 0x2100/2+0 : megasys1_scrollx[2] = new_data; break;
case 0x2100/2+1 : megasys1_scrolly[2] = new_data; break;
case 0x2100/2+2 : megasys1_scroll_2_flag_w(new_data); if (megasys1_tmap[2] == 0) { char buf[80]; sprintf(buf,"vreg %04X <- %04X NO MEMORY FOR SCREEN",offset*2,data); logerror("CPU #0 PC %06X : Warning, %s\n",cpu_get_pc(), buf); }; break;
case 0x2108/2 : megasys1_sprite_bank = new_data; break;
case 0x2200/2 : megasys1_sprite_flag = new_data; break;
case 0x2208/2 : megasys1_active_layers = new_data; break;
case 0x2308/2 : megasys1_screen_flag = new_data;
if (new_data & 0x10)
cpu_set_reset_line(1,1);
else
cpu_set_reset_line(1,0);
break;
case 0x8000/2 :
soundlatch_word_w(0,new_data,0);
cpu_cause_interrupt(1,2);
break;
default: { char buf[80]; sprintf(buf,"vreg %04X <- %04X",offset*2,data); logerror("CPU #0 PC %06X : Warning, %s\n",cpu_get_pc(), buf); };
}
}
void megasys1_vregs_D_w(offs_t offset __attribute__((__unused__)), data16_t data __attribute__((__unused__)), data16_t mem_mask __attribute__((__unused__)))
{
data16_t new_data = (*(&megasys1_vregs[offset]) = (*(&megasys1_vregs[offset]) & mem_mask) | (data & ~mem_mask));
switch (offset)
{
case 0x2000/2+0 : megasys1_scrollx[0] = new_data; break;
case 0x2000/2+1 : megasys1_scrolly[0] = new_data; break;
case 0x2000/2+2 : megasys1_scroll_0_flag_w(new_data); if (megasys1_tmap[0] == 0) { char buf[80]; sprintf(buf,"vreg %04X <- %04X NO MEMORY FOR SCREEN",offset*2,data); logerror("CPU #0 PC %06X : Warning, %s\n",cpu_get_pc(), buf); }; break;
case 0x2008/2+0 : megasys1_scrollx[1] = new_data; break;
case 0x2008/2+1 : megasys1_scrolly[1] = new_data; break;
case 0x2008/2+2 : megasys1_scroll_1_flag_w(new_data); if (megasys1_tmap[1] == 0) { char buf[80]; sprintf(buf,"vreg %04X <- %04X NO MEMORY FOR SCREEN",offset*2,data); logerror("CPU #0 PC %06X : Warning, %s\n",cpu_get_pc(), buf); }; break;
case 0x2108/2 : megasys1_sprite_bank = new_data; break;
case 0x2200/2 : megasys1_sprite_flag = new_data; break;
case 0x2208/2 : megasys1_active_layers = new_data; break;
case 0x2308/2 : megasys1_screen_flag = new_data; break;
default: { char buf[80]; sprintf(buf,"vreg %04X <- %04X",offset*2,data); logerror("CPU #0 PC %06X : Warning, %s\n",cpu_get_pc(), buf); };
}
}
# 576 "src/vidhrdw/megasys1.c"
static void draw_sprites(struct osd_bitmap *bitmap)
{
int color,code,sx,sy,flipx,flipy,attr,sprite,offs,color_mask;
if (hardware_type_z == 0)
{
color_mask = (megasys1_sprite_flag & 0x100) ? 0x07 : 0x0f;
for (offs = (0x800-8)/2;offs >= 0;offs -= 8/2)
{
for (sprite = 0; sprite < 4 ; sprite ++)
{
data16_t *objectdata = &megasys1_objectram[offs + (0x800/2) * sprite];
data16_t *spritedata = &spriteram16[ (objectdata[ 0 ] & 0x7f) * 0x10/2];
attr = spritedata[ 8/2 ];
if (((attr & 0xc0)>>6) != sprite) continue;
sx = ( spritedata[0x0A/2] + objectdata[0x02/2] ) % 512;
sy = ( spritedata[0x0C/2] + objectdata[0x04/2] ) % 512;
if (sx > 256-1) sx -= 512;
if (sy > 256-1) sy -= 512;
flipx = attr & 0x40;
flipy = attr & 0x80;
if (megasys1_screen_flag & 1)
{
flipx = !flipx; flipy = !flipy;
sx = 240-sx; sy = 240-sy;
}
code = spritedata[0x0E/2] + objectdata[0x06/2];
color = (attr & color_mask);
pdrawgfx(bitmap,Machine->gfx[3],
(code & 0xfff ) + ((megasys1_sprite_bank & 1) << 12),
color,
flipx, flipy,
sx, sy,
&Machine->visible_area,
TRANSPARENCY_PEN,15,
(attr & 0x08) ? 0x0c : 0x0a);
}
}
}
else
{
for (sprite = 0x80-1;sprite >= 0;sprite--)
{
data16_t *spritedata = &spriteram16[ sprite * 0x10/2];
attr = spritedata[ 8/2 ];
sx = spritedata[0x0A/2] % 512;
sy = spritedata[0x0C/2] % 512;
if (sx > 256-1) sx -= 512;
if (sy > 256-1) sy -= 512;
code = spritedata[0x0E/2];
color = (attr & 0x0F);
flipx = attr & 0x40;
flipy = attr & 0x80;
if (megasys1_screen_flag & 1)
{
flipx = !flipx; flipy = !flipy;
sx = 240-sx; sy = 240-sy;
}
pdrawgfx(bitmap,Machine->gfx[2],
code,
color,
flipx, flipy,
sx, sy,
&Machine->visible_area,
TRANSPARENCY_PEN,15,
(attr & 0x08) ? 0x0c : 0x0a);
}
}
}
# 679 "src/vidhrdw/megasys1.c"
static void mark_sprite_colors(void)
{
int color_codes_start, color, penmask[16];
int offs, sx, sy, code, attr, i;
int color_mask;
int xmin = Machine->visible_area.min_x - (16 - 1);
int xmax = Machine->visible_area.max_x;
int ymin = Machine->visible_area.min_y - (16 - 1);
int ymax = Machine->visible_area.max_y;
for (color = 0 ; color < 16 ; color++) penmask[color] = 0;
color_mask = (megasys1_sprite_flag & 0x100) ? 0x07 : 0x0f;
if (hardware_type_z == 0)
{
unsigned int *pen_usage = Machine->gfx[3]->pen_usage;
int total_elements = Machine->gfx[3]->total_elements;
color_codes_start = Machine->drv->gfxdecodeinfo[3].color_codes_start;
for (offs = 0; offs < 0x2000/2 ; offs += 8/2)
{
data16_t sprite = megasys1_objectram[offs+0x00];
data16_t *spritedata = &spriteram16[ (sprite&0x7F) * 16/2];
attr = spritedata[ 8/2 ];
if ( (attr & 0xc0) != ((offs/(0x800/2))<<6) ) continue;
sx = ( spritedata[0x0A/2] + megasys1_objectram[0x02/2] ) % 512;
sy = ( spritedata[0x0C/2] + megasys1_objectram[0x04/2] ) % 512;
if (sx > 256-1) sx -= 512;
if (sy > 256-1) sy -= 512;
if ((sx > xmax) ||(sy > ymax) ||(sx < xmin) ||(sy < ymin)) continue;
code = spritedata[0x0E/2] + megasys1_objectram[offs+0x06/2];
code = (code & 0xfff );
color = (attr & color_mask);
penmask[color] |= pen_usage[code % total_elements];
}
}
else
{
int sprite;
unsigned int *pen_usage = Machine->gfx[2]->pen_usage;
int total_elements = Machine->gfx[2]->total_elements;
color_codes_start = Machine->drv->gfxdecodeinfo[2].color_codes_start;
for (sprite = 0; sprite < 0x80 ; sprite++)
{
data16_t *spritedata = &spriteram16[ sprite * 16/2 ];
sx = spritedata[0x0A/2] % 512;
sy = spritedata[0x0C/2] % 512;
code = spritedata[0x0E/2];
color = spritedata[0x08/2] & 0x0F;
if (sx > 256-1) sx -= 512;
if (sy > 256-1) sy -= 512;
if ((sx > xmax) ||(sy > ymax) ||(sx < xmin) ||(sy < ymin)) continue;
penmask[color] |= pen_usage[code % total_elements];
}
}
for (color = 0; color < 16; color++)
for (i = 0; i < 16; i++)
if (penmask[color] & (1 << i)) palette_used_colors[16 * color + i + color_codes_start] = (1 | 2);
}
# 761 "src/vidhrdw/megasys1.c"
struct priority
{
struct GameDriver *driver;
int priorities[16];
};
int megasys1_layers_order[16];
extern struct GameDriver driver_64street;
extern struct GameDriver driver_astyanax;
extern struct GameDriver driver_bigstrik;
extern struct GameDriver driver_chimerab;
extern struct GameDriver driver_hachoo;
extern struct GameDriver driver_iganinju;
extern struct GameDriver driver_kickoff;
extern struct GameDriver driver_tshingen;
# 798 "src/vidhrdw/megasys1.c"
static struct priority priorities[] =
{
{ &driver_64street,
{ 0xfffff,0x03142,0xfffff,0x04132,0xfffff,0x04132,0xfffff,0xfffff,
0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff }
},
{ &driver_astyanax,
{ 0x04132,0x03142,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,
0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff }
},
{ &driver_bigstrik,
{ 0xfffff,0x03142,0xfffff,0x04132,0xfffff,0x04132,0xfffff,0xfffff,
0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff }
},
{ &driver_chimerab,
{ 0x14032,0x04132,0x14032,0x04132,0xfffff,0xfffff,0xfffff,0xfffff,
0xfffff,0xfffff,0x01324,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff }
},
{ &driver_hachoo,
{ 0x24130,0x01423,0xfffff,0x02413,0x04132,0xfffff,0x24130,0x13240,
0x24103,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff }
},
{ &driver_iganinju,
{ 0x04132,0xfffff,0xfffff,0x01423,0xfffff,0xfffff,0xfffff,0xfffff,
0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff }
},
{ &driver_kickoff,
{ 0x04132,0x02413,0x03142,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,
0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff }
},
{ &driver_tshingen,
{ 0x04132,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,
0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff,0xfffff }
},
{ 0 }
};
# 880 "src/vidhrdw/megasys1.c"
void megasys1_convert_prom(unsigned char *palette, unsigned short *colortable,const unsigned char *prom)
{
int pri_code, offset, i, order;
i = 0;
while ( priorities[i].driver &&
priorities[i].driver != Machine->gamedrv &&
priorities[i].driver != Machine->gamedrv->clone_of)
i++;
if (priorities[i].driver)
{
memcpy (megasys1_layers_order, priorities[i].priorities, 16 * sizeof(int));
logerror("WARNING: using an hand-crafted priorities scheme\n");
return;
}
for (pri_code = 0; pri_code < 0x10 ; pri_code++)
{
int layers_order[2];
for (offset = 0; offset < 2; offset ++)
{
int enable_mask = 0xf;
layers_order[offset] = 0xfffff;
do
{
int top = prom[pri_code * 0x20 + offset + enable_mask * 2] & 3;
int top_mask = 1 << top;
int result = 0;
for (i = 0; i < 0x10 ; i++)
{
int opacity = i & enable_mask;
int layer = prom[pri_code * 0x20 + offset + opacity * 2];
if (opacity)
{
if (opacity & top_mask)
{
if (layer != top ) result |= 1;
}
else
{
if (layer == top) result |= 2;
else result |= 4;
}
}
}
layers_order[offset] = ( (layers_order[offset] << 4) | top ) & 0xfffff;
enable_mask &= ~top_mask;
if (result & 1)
{
logerror("WARNING, pri $%X split %d - layer %d's opaque pens not totally opaque\n",pri_code,offset,top);
layers_order[offset] = 0xfffff;
break;
}
if ((result & 6) == 6)
{
logerror("WARNING, pri $%X split %d - layer %d's transparent pens aren't always transparent nor always opaque\n",pri_code,offset,top);
layers_order[offset] = 0xfffff;
break;
}
if (result == 2) enable_mask = 0;
} while (enable_mask);
}
order = 0xfffff;
for (i = 5; i > 0 ; )
{
int layer;
int layer0 = layers_order[0] & 0x0f;
int layer1 = layers_order[1] & 0x0f;
if (layer0 != 3)
{
if (layer1 == 3)
{
layer = 4;
layers_order[0] <<= 4;
}
else
{
layer = layer0;
if (layer0 != layer1)
{
logerror("WARNING, pri $%X - 'sprite splitting' does not simply split sprites\n",pri_code);
order = 0xfffff;
break;
}
}
}
else
{
if (layer1 == 3)
{
layer = 0x43;
order <<= 4;
i --;
}
else
{
layer = 3;
layers_order[1] <<= 4;
}
}
order = (order << 4 ) | layer;
i --;
layers_order[0] >>= 4;
layers_order[1] >>= 4;
}
megasys1_layers_order[pri_code] = order & 0xfffff;
}
# 1037 "src/vidhrdw/megasys1.c"
}
# 1048 "src/vidhrdw/megasys1.c"
void megasys1_vh_screenrefresh(struct osd_bitmap *bitmap,int full_refresh)
{
int i,flag,pri,primask;
int active_layers;
if (hardware_type_z)
{
active_layers = 0x000b;
pri = 0x0314f;
}
else
{
int reallyactive = 0;
pri = megasys1_layers_order[(megasys1_active_layers & 0x0f0f) >> 8];
# 1073 "src/vidhrdw/megasys1.c"
if (pri == 0xfffff) pri = 0x04132;
for (i = 0;i < 5;i++)
reallyactive |= 1 << ((pri >> (4*i)) & 0x0f);
active_layers = megasys1_active_layers & reallyactive;
active_layers |= 1 << ((pri & 0xf0000) >> 16);
}
tilemap_set_flip( 0, (megasys1_screen_flag & 1) ? (0x2 | 0x1) : 0 );
for (i = 0;i < 3;i++)
{
if (megasys1_tmap[i])
{
tilemap_set_enable(megasys1_tmap[i],active_layers & (1 << i));
tilemap_set_scrollx(megasys1_tmap[i],0,megasys1_scrollx[i]);
tilemap_set_scrolly(megasys1_tmap[i],0,megasys1_scrolly[i]);
}
}
tilemap_update(0);
palette_init_used_colors();
mark_sprite_colors();
palette_recalc();
fillbitmap(priority_bitmap,0,((void *)0));
flag = 0x10;
primask = 0;
for (i = 0;i < 5;i++)
{
int layer = (pri & 0xf0000) >> 16;
pri <<= 4;
switch (layer)
{
case 0:
case 1:
case 2:
if ( (megasys1_tmap[layer]) && (active_layers & (1 << layer) ) )
{
tilemap_draw(bitmap,megasys1_tmap[layer],flag,primask);
flag = 0;
}
break;
case 3:
case 4:
if (flag != 0)
{
flag = 0;
fillbitmap(bitmap,palette_transparent_pen,&Machine->visible_area);
}
if (megasys1_sprite_flag & 0x100)
{
primask |= 1 << (layer-3);
}
else
if (layer == 3) primask |= 3;
break;
}
}
if (active_layers & 0x08)
draw_sprites(bitmap);
}
>Fix:
not known
>Release-Note:
>Audit-Trail:
>Unformatted: