Advertisement
Guest User

Untitled

a guest
May 18th, 2012
410
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 271.18 KB | None | 0 0
  1. // /usr/lib/gcc/arm-linux-gnueabihf/4.6/cc1plus -quiet -I src/burner/win32 -I src/burner/libretro -I src/burner/libretro/tchar -I src/burn -I src/burn/burner -I src/cpu -I src/burn/snd -I src/burn/devices -I src/intf -I src/intf/input -I src/intf/cd -I src/burner -I src/dep/generated -I src/cpu -I src/cpu/m6809 -I src/cpu/m6805 -I src/cpu/m6800 -I src/cpu/h6280 -I src/cpu/nec -I src/cpu/hd6309 -I src/cpu/arm7 -I src/cpu/i8039 -I src/cpu/konami -I src/cpu/m68k -I src/cpu/m6502 -I src/cpu/z80 -I src/cpu/sh2 -I src/cpu/s2650 -I src/cpu/arm -I src/dep/libs/zlib -I src/burn/drv/capcom -I src/burn/drv/dataeast -I src/burn/drv/cave -I src/burn/drv/neogeo -I src/burn/drv/psikyo -I src/burn/drv/sega -I src/burn/drv/toaplan -I src/burn/drv/taito -I src/dep/libs -I src/dep/generated-libretro -imultilib . -imultiarch arm-linux-gnueabihf -D_GNU_SOURCE -D NDEBUG -D USE_SPEEDHACKS -D __LIBRETRO__ -D __LIBRETRO_OPTIMIZATIONS__ -D LSB_FIRST -D INLINE=static inline -D SH2_INLINE=static inline -D __LIBRETRO_OPTIMIZATIONS__ src/burn/drv/dataeast/d_cninja.cpp -quiet -dumpbase d_cninja.cpp -march=armv6 -mfloat-abi=hard -mfpu=vfp -auxbase-strip src/burn/drv/dataeast/d_cninja.o -O3 -Wno-write-strings -fPIC -o - -frandom-seed=0
  2. # 1 "src/burn/drv/dataeast/d_cninja.cpp"
  3. # 1 "<built-in>"
  4. # 1 "<command-line>"
  5. # 1 "src/burn/drv/dataeast/d_cninja.cpp"
  6.  
  7.  
  8.  
  9. # 1 "src/burn/tiles_generic.h" 1
  10. # 1 "src/burn/burnint.h" 1
  11.  
  12.  
  13.  
  14. # 1 "/usr/lib/gcc/arm-linux-gnueabihf/4.6/include/stdarg.h" 1 3 4
  15. # 40 "/usr/lib/gcc/arm-linux-gnueabihf/4.6/include/stdarg.h" 3 4
  16. typedef __builtin_va_list __gnuc_va_list;
  17. # 102 "/usr/lib/gcc/arm-linux-gnueabihf/4.6/include/stdarg.h" 3 4
  18. typedef __gnuc_va_list va_list;
  19. # 5 "src/burn/burnint.h" 2
  20. # 1 "/usr/include/stdio.h" 1 3 4
  21. # 28 "/usr/include/stdio.h" 3 4
  22. # 1 "/usr/include/features.h" 1 3 4
  23. # 323 "/usr/include/features.h" 3 4
  24. # 1 "/usr/include/arm-linux-gnueabihf/bits/predefs.h" 1 3 4
  25. # 324 "/usr/include/features.h" 2 3 4
  26. # 356 "/usr/include/features.h" 3 4
  27. # 1 "/usr/include/arm-linux-gnueabihf/sys/cdefs.h" 1 3 4
  28. # 353 "/usr/include/arm-linux-gnueabihf/sys/cdefs.h" 3 4
  29. # 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4
  30. # 354 "/usr/include/arm-linux-gnueabihf/sys/cdefs.h" 2 3 4
  31. # 357 "/usr/include/features.h" 2 3 4
  32. # 388 "/usr/include/features.h" 3 4
  33. # 1 "/usr/include/arm-linux-gnueabihf/gnu/stubs.h" 1 3 4
  34. # 389 "/usr/include/features.h" 2 3 4
  35. # 29 "/usr/include/stdio.h" 2 3 4
  36.  
  37. extern "C" {
  38.  
  39.  
  40.  
  41. # 1 "/usr/lib/gcc/arm-linux-gnueabihf/4.6/include/stddef.h" 1 3 4
  42. # 212 "/usr/lib/gcc/arm-linux-gnueabihf/4.6/include/stddef.h" 3 4
  43. typedef unsigned int size_t;
  44. # 35 "/usr/include/stdio.h" 2 3 4
  45.  
  46. # 1 "/usr/include/arm-linux-gnueabihf/bits/types.h" 1 3 4
  47. # 28 "/usr/include/arm-linux-gnueabihf/bits/types.h" 3 4
  48. # 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4
  49. # 29 "/usr/include/arm-linux-gnueabihf/bits/types.h" 2 3 4
  50.  
  51.  
  52. typedef unsigned char __u_char;
  53. typedef unsigned short int __u_short;
  54. typedef unsigned int __u_int;
  55. typedef unsigned long int __u_long;
  56.  
  57.  
  58. typedef signed char __int8_t;
  59. typedef unsigned char __uint8_t;
  60. typedef signed short int __int16_t;
  61. typedef unsigned short int __uint16_t;
  62. typedef signed int __int32_t;
  63. typedef unsigned int __uint32_t;
  64.  
  65.  
  66.  
  67.  
  68. __extension__ typedef signed long long int __int64_t;
  69. __extension__ typedef unsigned long long int __uint64_t;
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77. __extension__ typedef long long int __quad_t;
  78. __extension__ typedef unsigned long long int __u_quad_t;
  79. # 131 "/usr/include/arm-linux-gnueabihf/bits/types.h" 3 4
  80. # 1 "/usr/include/arm-linux-gnueabihf/bits/typesizes.h" 1 3 4
  81. # 132 "/usr/include/arm-linux-gnueabihf/bits/types.h" 2 3 4
  82.  
  83.  
  84. __extension__ typedef __u_quad_t __dev_t;
  85. __extension__ typedef unsigned int __uid_t;
  86. __extension__ typedef unsigned int __gid_t;
  87. __extension__ typedef unsigned long int __ino_t;
  88. __extension__ typedef __u_quad_t __ino64_t;
  89. __extension__ typedef unsigned int __mode_t;
  90. __extension__ typedef unsigned int __nlink_t;
  91. __extension__ typedef long int __off_t;
  92. __extension__ typedef __quad_t __off64_t;
  93. __extension__ typedef int __pid_t;
  94. __extension__ typedef struct { int __val[2]; } __fsid_t;
  95. __extension__ typedef long int __clock_t;
  96. __extension__ typedef unsigned long int __rlim_t;
  97. __extension__ typedef __u_quad_t __rlim64_t;
  98. __extension__ typedef unsigned int __id_t;
  99. __extension__ typedef long int __time_t;
  100. __extension__ typedef unsigned int __useconds_t;
  101. __extension__ typedef long int __suseconds_t;
  102.  
  103. __extension__ typedef int __daddr_t;
  104. __extension__ typedef long int __swblk_t;
  105. __extension__ typedef int __key_t;
  106.  
  107.  
  108. __extension__ typedef int __clockid_t;
  109.  
  110.  
  111. __extension__ typedef void * __timer_t;
  112.  
  113.  
  114. __extension__ typedef long int __blksize_t;
  115.  
  116.  
  117.  
  118.  
  119. __extension__ typedef long int __blkcnt_t;
  120. __extension__ typedef __quad_t __blkcnt64_t;
  121.  
  122.  
  123. __extension__ typedef unsigned long int __fsblkcnt_t;
  124. __extension__ typedef __u_quad_t __fsblkcnt64_t;
  125.  
  126.  
  127. __extension__ typedef unsigned long int __fsfilcnt_t;
  128. __extension__ typedef __u_quad_t __fsfilcnt64_t;
  129.  
  130. __extension__ typedef int __ssize_t;
  131.  
  132.  
  133.  
  134. typedef __off64_t __loff_t;
  135. typedef __quad_t *__qaddr_t;
  136. typedef char *__caddr_t;
  137.  
  138.  
  139. __extension__ typedef int __intptr_t;
  140.  
  141.  
  142. __extension__ typedef unsigned int __socklen_t;
  143. # 37 "/usr/include/stdio.h" 2 3 4
  144. # 45 "/usr/include/stdio.h" 3 4
  145. struct _IO_FILE;
  146.  
  147.  
  148.  
  149. typedef struct _IO_FILE FILE;
  150.  
  151.  
  152.  
  153.  
  154.  
  155. # 65 "/usr/include/stdio.h" 3 4
  156. typedef struct _IO_FILE __FILE;
  157. # 75 "/usr/include/stdio.h" 3 4
  158. # 1 "/usr/include/libio.h" 1 3 4
  159. # 32 "/usr/include/libio.h" 3 4
  160. # 1 "/usr/include/_G_config.h" 1 3 4
  161. # 15 "/usr/include/_G_config.h" 3 4
  162. # 1 "/usr/lib/gcc/arm-linux-gnueabihf/4.6/include/stddef.h" 1 3 4
  163. # 16 "/usr/include/_G_config.h" 2 3 4
  164.  
  165.  
  166.  
  167.  
  168. # 1 "/usr/include/wchar.h" 1 3 4
  169. # 83 "/usr/include/wchar.h" 3 4
  170. typedef struct
  171. {
  172.   int __count;
  173.   union
  174.   {
  175.  
  176.     unsigned int __wch;
  177.  
  178.  
  179.  
  180.     char __wchb[4];
  181.   } __value;
  182. } __mbstate_t;
  183. # 21 "/usr/include/_G_config.h" 2 3 4
  184.  
  185. typedef struct
  186. {
  187.   __off_t __pos;
  188.   __mbstate_t __state;
  189. } _G_fpos_t;
  190. typedef struct
  191. {
  192.   __off64_t __pos;
  193.   __mbstate_t __state;
  194. } _G_fpos64_t;
  195. # 53 "/usr/include/_G_config.h" 3 4
  196. typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
  197. typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
  198. typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
  199. typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
  200. # 33 "/usr/include/libio.h" 2 3 4
  201. # 170 "/usr/include/libio.h" 3 4
  202. struct _IO_jump_t; struct _IO_FILE;
  203. # 180 "/usr/include/libio.h" 3 4
  204. typedef void _IO_lock_t;
  205.  
  206.  
  207.  
  208.  
  209.  
  210. struct _IO_marker {
  211.   struct _IO_marker *_next;
  212.   struct _IO_FILE *_sbuf;
  213.  
  214.  
  215.  
  216.   int _pos;
  217. # 203 "/usr/include/libio.h" 3 4
  218. };
  219.  
  220.  
  221. enum __codecvt_result
  222. {
  223.   __codecvt_ok,
  224.   __codecvt_partial,
  225.   __codecvt_error,
  226.   __codecvt_noconv
  227. };
  228. # 271 "/usr/include/libio.h" 3 4
  229. struct _IO_FILE {
  230.   int _flags;
  231.  
  232.  
  233.  
  234.  
  235.   char* _IO_read_ptr;
  236.   char* _IO_read_end;
  237.   char* _IO_read_base;
  238.   char* _IO_write_base;
  239.   char* _IO_write_ptr;
  240.   char* _IO_write_end;
  241.   char* _IO_buf_base;
  242.   char* _IO_buf_end;
  243.  
  244.   char *_IO_save_base;
  245.   char *_IO_backup_base;
  246.   char *_IO_save_end;
  247.  
  248.   struct _IO_marker *_markers;
  249.  
  250.   struct _IO_FILE *_chain;
  251.  
  252.   int _fileno;
  253.  
  254.  
  255.  
  256.   int _flags2;
  257.  
  258.   __off_t _old_offset;
  259.  
  260.  
  261.  
  262.   unsigned short _cur_column;
  263.   signed char _vtable_offset;
  264.   char _shortbuf[1];
  265.  
  266.  
  267.  
  268.   _IO_lock_t *_lock;
  269. # 319 "/usr/include/libio.h" 3 4
  270.   __off64_t _offset;
  271. # 328 "/usr/include/libio.h" 3 4
  272.   void *__pad1;
  273.   void *__pad2;
  274.   void *__pad3;
  275.   void *__pad4;
  276.   size_t __pad5;
  277.  
  278.   int _mode;
  279.  
  280.   char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
  281.  
  282. };
  283.  
  284.  
  285.  
  286.  
  287.  
  288. struct _IO_FILE_plus;
  289.  
  290. extern struct _IO_FILE_plus _IO_2_1_stdin_;
  291. extern struct _IO_FILE_plus _IO_2_1_stdout_;
  292. extern struct _IO_FILE_plus _IO_2_1_stderr_;
  293. # 364 "/usr/include/libio.h" 3 4
  294. typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302. typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
  303.      size_t __n);
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311. typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
  312.  
  313.  
  314. typedef int __io_close_fn (void *__cookie);
  315.  
  316.  
  317.  
  318.  
  319. typedef __io_read_fn cookie_read_function_t;
  320. typedef __io_write_fn cookie_write_function_t;
  321. typedef __io_seek_fn cookie_seek_function_t;
  322. typedef __io_close_fn cookie_close_function_t;
  323.  
  324.  
  325. typedef struct
  326. {
  327.   __io_read_fn *read;
  328.   __io_write_fn *write;
  329.   __io_seek_fn *seek;
  330.   __io_close_fn *close;
  331. } _IO_cookie_io_functions_t;
  332. typedef _IO_cookie_io_functions_t cookie_io_functions_t;
  333.  
  334. struct _IO_cookie_file;
  335.  
  336.  
  337. extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
  338.         void *__cookie, _IO_cookie_io_functions_t __fns);
  339.  
  340.  
  341.  
  342.  
  343. extern "C" {
  344.  
  345.  
  346. extern int __underflow (_IO_FILE *);
  347. extern int __uflow (_IO_FILE *);
  348. extern int __overflow (_IO_FILE *, int);
  349. # 460 "/usr/include/libio.h" 3 4
  350. extern int _IO_getc (_IO_FILE *__fp);
  351. extern int _IO_putc (int __c, _IO_FILE *__fp);
  352. extern int _IO_feof (_IO_FILE *__fp) throw ();
  353. extern int _IO_ferror (_IO_FILE *__fp) throw ();
  354.  
  355. extern int _IO_peekc_locked (_IO_FILE *__fp);
  356.  
  357.  
  358.  
  359.  
  360.  
  361. extern void _IO_flockfile (_IO_FILE *) throw ();
  362. extern void _IO_funlockfile (_IO_FILE *) throw ();
  363. extern int _IO_ftrylockfile (_IO_FILE *) throw ();
  364. # 490 "/usr/include/libio.h" 3 4
  365. extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
  366.    __gnuc_va_list, int *__restrict);
  367. extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
  368.     __gnuc_va_list);
  369. extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
  370. extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
  371.  
  372. extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
  373. extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
  374.  
  375. extern void _IO_free_backup_area (_IO_FILE *) throw ();
  376. # 552 "/usr/include/libio.h" 3 4
  377. }
  378. # 76 "/usr/include/stdio.h" 2 3 4
  379. # 91 "/usr/include/stdio.h" 3 4
  380. typedef __off_t off_t;
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387. typedef __off64_t off64_t;
  388.  
  389.  
  390.  
  391.  
  392. typedef __ssize_t ssize_t;
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. typedef _G_fpos_t fpos_t;
  401.  
  402.  
  403.  
  404.  
  405.  
  406. typedef _G_fpos64_t fpos64_t;
  407. # 161 "/usr/include/stdio.h" 3 4
  408. # 1 "/usr/include/arm-linux-gnueabihf/bits/stdio_lim.h" 1 3 4
  409. # 162 "/usr/include/stdio.h" 2 3 4
  410.  
  411.  
  412.  
  413. extern struct _IO_FILE *stdin;
  414. extern struct _IO_FILE *stdout;
  415. extern struct _IO_FILE *stderr;
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423. extern int remove (__const char *__filename) throw ();
  424.  
  425. extern int rename (__const char *__old, __const char *__new) throw ();
  426.  
  427.  
  428.  
  429.  
  430. extern int renameat (int __oldfd, __const char *__old, int __newfd,
  431.        __const char *__new) throw ();
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440. extern FILE *tmpfile (void) ;
  441. # 202 "/usr/include/stdio.h" 3 4
  442. extern FILE *tmpfile64 (void) ;
  443.  
  444.  
  445.  
  446. extern char *tmpnam (char *__s) throw () ;
  447.  
  448.  
  449.  
  450.  
  451.  
  452. extern char *tmpnam_r (char *__s) throw () ;
  453. # 224 "/usr/include/stdio.h" 3 4
  454. extern char *tempnam (__const char *__dir, __const char *__pfx)
  455.      throw () __attribute__ ((__malloc__)) ;
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464. extern int fclose (FILE *__stream);
  465.  
  466.  
  467.  
  468.  
  469. extern int fflush (FILE *__stream);
  470.  
  471. # 249 "/usr/include/stdio.h" 3 4
  472. extern int fflush_unlocked (FILE *__stream);
  473. # 259 "/usr/include/stdio.h" 3 4
  474. extern int fcloseall (void);
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484. extern FILE *fopen (__const char *__restrict __filename,
  485.       __const char *__restrict __modes) ;
  486.  
  487.  
  488.  
  489.  
  490. extern FILE *freopen (__const char *__restrict __filename,
  491.         __const char *__restrict __modes,
  492.         FILE *__restrict __stream) ;
  493. # 292 "/usr/include/stdio.h" 3 4
  494.  
  495.  
  496. extern FILE *fopen64 (__const char *__restrict __filename,
  497.         __const char *__restrict __modes) ;
  498. extern FILE *freopen64 (__const char *__restrict __filename,
  499.    __const char *__restrict __modes,
  500.    FILE *__restrict __stream) ;
  501.  
  502.  
  503.  
  504.  
  505. extern FILE *fdopen (int __fd, __const char *__modes) throw () ;
  506.  
  507.  
  508.  
  509.  
  510.  
  511. extern FILE *fopencookie (void *__restrict __magic_cookie,
  512.      __const char *__restrict __modes,
  513.      _IO_cookie_io_functions_t __io_funcs) throw () ;
  514.  
  515.  
  516.  
  517.  
  518. extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
  519.   throw () ;
  520.  
  521.  
  522.  
  523.  
  524. extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) throw () ;
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531. extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) throw ();
  532.  
  533.  
  534.  
  535. extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
  536.       int __modes, size_t __n) throw ();
  537.  
  538.  
  539.  
  540.  
  541.  
  542. extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
  543.          size_t __size) throw ();
  544.  
  545.  
  546. extern void setlinebuf (FILE *__stream) throw ();
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555. extern int fprintf (FILE *__restrict __stream,
  556.       __const char *__restrict __format, ...);
  557.  
  558.  
  559.  
  560.  
  561. extern int printf (__const char *__restrict __format, ...);
  562.  
  563. extern int sprintf (char *__restrict __s,
  564.       __const char *__restrict __format, ...) throw ();
  565.  
  566.  
  567.  
  568.  
  569.  
  570. extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
  571.        __gnuc_va_list __arg);
  572.  
  573.  
  574.  
  575.  
  576. extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
  577.  
  578. extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
  579.        __gnuc_va_list __arg) throw ();
  580.  
  581.  
  582.  
  583.  
  584.  
  585. extern int snprintf (char *__restrict __s, size_t __maxlen,
  586.        __const char *__restrict __format, ...)
  587.      throw () __attribute__ ((__format__ (__printf__, 3, 4)));
  588.  
  589. extern int vsnprintf (char *__restrict __s, size_t __maxlen,
  590.         __const char *__restrict __format, __gnuc_va_list __arg)
  591.      throw () __attribute__ ((__format__ (__printf__, 3, 0)));
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
  599.         __gnuc_va_list __arg)
  600.      throw () __attribute__ ((__format__ (__printf__, 2, 0))) ;
  601. extern int __asprintf (char **__restrict __ptr,
  602.          __const char *__restrict __fmt, ...)
  603.      throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
  604. extern int asprintf (char **__restrict __ptr,
  605.        __const char *__restrict __fmt, ...)
  606.      throw () __attribute__ ((__format__ (__printf__, 2, 3))) ;
  607. # 414 "/usr/include/stdio.h" 3 4
  608. extern int vdprintf (int __fd, __const char *__restrict __fmt,
  609.        __gnuc_va_list __arg)
  610.      __attribute__ ((__format__ (__printf__, 2, 0)));
  611. extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
  612.      __attribute__ ((__format__ (__printf__, 2, 3)));
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621. extern int fscanf (FILE *__restrict __stream,
  622.      __const char *__restrict __format, ...) ;
  623.  
  624.  
  625.  
  626.  
  627. extern int scanf (__const char *__restrict __format, ...) ;
  628.  
  629. extern int sscanf (__const char *__restrict __s,
  630.      __const char *__restrict __format, ...) throw ();
  631. # 465 "/usr/include/stdio.h" 3 4
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640. extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
  641.       __gnuc_va_list __arg)
  642.      __attribute__ ((__format__ (__scanf__, 2, 0))) ;
  643.  
  644.  
  645.  
  646.  
  647.  
  648. extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
  649.      __attribute__ ((__format__ (__scanf__, 1, 0))) ;
  650.  
  651.  
  652. extern int vsscanf (__const char *__restrict __s,
  653.       __const char *__restrict __format, __gnuc_va_list __arg)
  654.      throw () __attribute__ ((__format__ (__scanf__, 2, 0)));
  655. # 524 "/usr/include/stdio.h" 3 4
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665. extern int fgetc (FILE *__stream);
  666. extern int getc (FILE *__stream);
  667.  
  668.  
  669.  
  670.  
  671.  
  672. extern int getchar (void);
  673.  
  674. # 552 "/usr/include/stdio.h" 3 4
  675. extern int getc_unlocked (FILE *__stream);
  676. extern int getchar_unlocked (void);
  677. # 563 "/usr/include/stdio.h" 3 4
  678. extern int fgetc_unlocked (FILE *__stream);
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690. extern int fputc (int __c, FILE *__stream);
  691. extern int putc (int __c, FILE *__stream);
  692.  
  693.  
  694.  
  695.  
  696.  
  697. extern int putchar (int __c);
  698.  
  699. # 596 "/usr/include/stdio.h" 3 4
  700. extern int fputc_unlocked (int __c, FILE *__stream);
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708. extern int putc_unlocked (int __c, FILE *__stream);
  709. extern int putchar_unlocked (int __c);
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716. extern int getw (FILE *__stream);
  717.  
  718.  
  719. extern int putw (int __w, FILE *__stream);
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728. extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
  729.      ;
  730.  
  731.  
  732.  
  733.  
  734.  
  735.  
  736. extern char *gets (char *__s) ;
  737.  
  738. # 642 "/usr/include/stdio.h" 3 4
  739. extern char *fgets_unlocked (char *__restrict __s, int __n,
  740.         FILE *__restrict __stream) ;
  741. # 658 "/usr/include/stdio.h" 3 4
  742. extern __ssize_t __getdelim (char **__restrict __lineptr,
  743.           size_t *__restrict __n, int __delimiter,
  744.           FILE *__restrict __stream) ;
  745. extern __ssize_t getdelim (char **__restrict __lineptr,
  746.         size_t *__restrict __n, int __delimiter,
  747.         FILE *__restrict __stream) ;
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755. extern __ssize_t getline (char **__restrict __lineptr,
  756.        size_t *__restrict __n,
  757.        FILE *__restrict __stream) ;
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766. extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
  767.  
  768.  
  769.  
  770.  
  771.  
  772. extern int puts (__const char *__s);
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779. extern int ungetc (int __c, FILE *__stream);
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786. extern size_t fread (void *__restrict __ptr, size_t __size,
  787.        size_t __n, FILE *__restrict __stream) ;
  788.  
  789.  
  790.  
  791.  
  792. extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
  793.         size_t __n, FILE *__restrict __s);
  794.  
  795. # 719 "/usr/include/stdio.h" 3 4
  796. extern int fputs_unlocked (__const char *__restrict __s,
  797.       FILE *__restrict __stream);
  798. # 730 "/usr/include/stdio.h" 3 4
  799. extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
  800.          size_t __n, FILE *__restrict __stream) ;
  801. extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
  802.           size_t __n, FILE *__restrict __stream);
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811. extern int fseek (FILE *__stream, long int __off, int __whence);
  812.  
  813.  
  814.  
  815.  
  816. extern long int ftell (FILE *__stream) ;
  817.  
  818.  
  819.  
  820.  
  821. extern void rewind (FILE *__stream);
  822.  
  823. # 766 "/usr/include/stdio.h" 3 4
  824. extern int fseeko (FILE *__stream, __off_t __off, int __whence);
  825.  
  826.  
  827.  
  828.  
  829. extern __off_t ftello (FILE *__stream) ;
  830. # 785 "/usr/include/stdio.h" 3 4
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837. extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
  838.  
  839.  
  840.  
  841.  
  842. extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
  843. # 808 "/usr/include/stdio.h" 3 4
  844.  
  845.  
  846.  
  847. extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
  848. extern __off64_t ftello64 (FILE *__stream) ;
  849. extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
  850. extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
  851.  
  852.  
  853.  
  854.  
  855. extern void clearerr (FILE *__stream) throw ();
  856.  
  857. extern int feof (FILE *__stream) throw () ;
  858.  
  859. extern int ferror (FILE *__stream) throw () ;
  860.  
  861.  
  862.  
  863.  
  864. extern void clearerr_unlocked (FILE *__stream) throw ();
  865. extern int feof_unlocked (FILE *__stream) throw () ;
  866. extern int ferror_unlocked (FILE *__stream) throw () ;
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875. extern void perror (__const char *__s);
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882. # 1 "/usr/include/arm-linux-gnueabihf/bits/sys_errlist.h" 1 3 4
  883. # 27 "/usr/include/arm-linux-gnueabihf/bits/sys_errlist.h" 3 4
  884. extern int sys_nerr;
  885. extern __const char *__const sys_errlist[];
  886.  
  887.  
  888. extern int _sys_nerr;
  889. extern __const char *__const _sys_errlist[];
  890. # 847 "/usr/include/stdio.h" 2 3 4
  891.  
  892.  
  893.  
  894.  
  895. extern int fileno (FILE *__stream) throw () ;
  896.  
  897.  
  898.  
  899.  
  900. extern int fileno_unlocked (FILE *__stream) throw () ;
  901. # 866 "/usr/include/stdio.h" 3 4
  902. extern FILE *popen (__const char *__command, __const char *__modes) ;
  903.  
  904.  
  905.  
  906.  
  907.  
  908. extern int pclose (FILE *__stream);
  909.  
  910.  
  911.  
  912.  
  913.  
  914. extern char *ctermid (char *__s) throw ();
  915.  
  916.  
  917.  
  918.  
  919.  
  920. extern char *cuserid (char *__s);
  921.  
  922.  
  923.  
  924.  
  925. struct obstack;
  926.  
  927.  
  928. extern int obstack_printf (struct obstack *__restrict __obstack,
  929.       __const char *__restrict __format, ...)
  930.      throw () __attribute__ ((__format__ (__printf__, 2, 3)));
  931. extern int obstack_vprintf (struct obstack *__restrict __obstack,
  932.        __const char *__restrict __format,
  933.        __gnuc_va_list __args)
  934.      throw () __attribute__ ((__format__ (__printf__, 2, 0)));
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942. extern void flockfile (FILE *__stream) throw ();
  943.  
  944.  
  945.  
  946. extern int ftrylockfile (FILE *__stream) throw () ;
  947.  
  948.  
  949. extern void funlockfile (FILE *__stream) throw ();
  950. # 927 "/usr/include/stdio.h" 3 4
  951. # 1 "/usr/include/arm-linux-gnueabihf/bits/stdio.h" 1 3 4
  952. # 36 "/usr/include/arm-linux-gnueabihf/bits/stdio.h" 3 4
  953. extern __inline __attribute__ ((__gnu_inline__)) int
  954. vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
  955. {
  956.   return vfprintf (stdout, __fmt, __arg);
  957. }
  958.  
  959.  
  960.  
  961. extern __inline __attribute__ ((__gnu_inline__)) int
  962. getchar (void)
  963. {
  964.   return _IO_getc (stdin);
  965. }
  966.  
  967.  
  968.  
  969.  
  970. extern __inline __attribute__ ((__gnu_inline__)) int
  971. fgetc_unlocked (FILE *__fp)
  972. {
  973.   return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
  974. }
  975.  
  976.  
  977.  
  978.  
  979.  
  980. extern __inline __attribute__ ((__gnu_inline__)) int
  981. getc_unlocked (FILE *__fp)
  982. {
  983.   return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
  984. }
  985.  
  986.  
  987. extern __inline __attribute__ ((__gnu_inline__)) int
  988. getchar_unlocked (void)
  989. {
  990.   return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
  991. }
  992.  
  993.  
  994.  
  995.  
  996. extern __inline __attribute__ ((__gnu_inline__)) int
  997. putchar (int __c)
  998. {
  999.   return _IO_putc (__c, stdout);
  1000. }
  1001.  
  1002.  
  1003.  
  1004.  
  1005. extern __inline __attribute__ ((__gnu_inline__)) int
  1006. fputc_unlocked (int __c, FILE *__stream)
  1007. {
  1008.   return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
  1009. }
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015. extern __inline __attribute__ ((__gnu_inline__)) int
  1016. putc_unlocked (int __c, FILE *__stream)
  1017. {
  1018.   return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
  1019. }
  1020.  
  1021.  
  1022. extern __inline __attribute__ ((__gnu_inline__)) int
  1023. putchar_unlocked (int __c)
  1024. {
  1025.   return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
  1026. }
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032. extern __inline __attribute__ ((__gnu_inline__)) __ssize_t
  1033. getline (char **__lineptr, size_t *__n, FILE *__stream)
  1034. {
  1035.   return __getdelim (__lineptr, __n, '\n', __stream);
  1036. }
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042. extern __inline __attribute__ ((__gnu_inline__)) int
  1043. feof_unlocked (FILE *__stream) throw ()
  1044. {
  1045.   return (((__stream)->_flags & 0x10) != 0);
  1046. }
  1047.  
  1048.  
  1049. extern __inline __attribute__ ((__gnu_inline__)) int
  1050. ferror_unlocked (FILE *__stream) throw ()
  1051. {
  1052.   return (((__stream)->_flags & 0x20) != 0);
  1053. }
  1054. # 928 "/usr/include/stdio.h" 2 3 4
  1055. # 936 "/usr/include/stdio.h" 3 4
  1056. }
  1057. # 6 "src/burn/burnint.h" 2
  1058. # 1 "/usr/include/stdlib.h" 1 3 4
  1059. # 33 "/usr/include/stdlib.h" 3 4
  1060. # 1 "/usr/lib/gcc/arm-linux-gnueabihf/4.6/include/stddef.h" 1 3 4
  1061. # 34 "/usr/include/stdlib.h" 2 3 4
  1062.  
  1063. extern "C" {
  1064.  
  1065.  
  1066.  
  1067.  
  1068.  
  1069.  
  1070. # 1 "/usr/include/arm-linux-gnueabihf/bits/waitflags.h" 1 3 4
  1071. # 43 "/usr/include/stdlib.h" 2 3 4
  1072. # 1 "/usr/include/arm-linux-gnueabihf/bits/waitstatus.h" 1 3 4
  1073. # 65 "/usr/include/arm-linux-gnueabihf/bits/waitstatus.h" 3 4
  1074. # 1 "/usr/include/endian.h" 1 3 4
  1075. # 37 "/usr/include/endian.h" 3 4
  1076. # 1 "/usr/include/arm-linux-gnueabihf/bits/endian.h" 1 3 4
  1077. # 38 "/usr/include/endian.h" 2 3 4
  1078. # 61 "/usr/include/endian.h" 3 4
  1079. # 1 "/usr/include/arm-linux-gnueabihf/bits/byteswap.h" 1 3 4
  1080. # 62 "/usr/include/endian.h" 2 3 4
  1081. # 66 "/usr/include/arm-linux-gnueabihf/bits/waitstatus.h" 2 3 4
  1082.  
  1083. union wait
  1084.   {
  1085.     int w_status;
  1086.     struct
  1087.       {
  1088.  
  1089.  unsigned int __w_termsig:7;
  1090.  unsigned int __w_coredump:1;
  1091.  unsigned int __w_retcode:8;
  1092.  unsigned int:16;
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.       } __wait_terminated;
  1101.     struct
  1102.       {
  1103.  
  1104.  unsigned int __w_stopval:8;
  1105.  unsigned int __w_stopsig:8;
  1106.  unsigned int:16;
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.       } __wait_stopped;
  1114.   };
  1115. # 44 "/usr/include/stdlib.h" 2 3 4
  1116. # 96 "/usr/include/stdlib.h" 3 4
  1117.  
  1118.  
  1119. typedef struct
  1120.   {
  1121.     int quot;
  1122.     int rem;
  1123.   } div_t;
  1124.  
  1125.  
  1126.  
  1127. typedef struct
  1128.   {
  1129.     long int quot;
  1130.     long int rem;
  1131.   } ldiv_t;
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139. __extension__ typedef struct
  1140.   {
  1141.     long long int quot;
  1142.     long long int rem;
  1143.   } lldiv_t;
  1144.  
  1145.  
  1146. # 140 "/usr/include/stdlib.h" 3 4
  1147. extern size_t __ctype_get_mb_cur_max (void) throw () ;
  1148.  
  1149.  
  1150.  
  1151.  
  1152. extern double atof (__const char *__nptr)
  1153.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
  1154.  
  1155. extern int atoi (__const char *__nptr)
  1156.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
  1157.  
  1158. extern long int atol (__const char *__nptr)
  1159.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165. __extension__ extern long long int atoll (__const char *__nptr)
  1166.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172. extern double strtod (__const char *__restrict __nptr,
  1173.         char **__restrict __endptr)
  1174.      throw () __attribute__ ((__nonnull__ (1))) ;
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180. extern float strtof (__const char *__restrict __nptr,
  1181.        char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1))) ;
  1182.  
  1183. extern long double strtold (__const char *__restrict __nptr,
  1184.        char **__restrict __endptr)
  1185.      throw () __attribute__ ((__nonnull__ (1))) ;
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191. extern long int strtol (__const char *__restrict __nptr,
  1192.    char **__restrict __endptr, int __base)
  1193.      throw () __attribute__ ((__nonnull__ (1))) ;
  1194.  
  1195. extern unsigned long int strtoul (__const char *__restrict __nptr,
  1196.       char **__restrict __endptr, int __base)
  1197.      throw () __attribute__ ((__nonnull__ (1))) ;
  1198.  
  1199.  
  1200.  
  1201.  
  1202. __extension__
  1203. extern long long int strtoq (__const char *__restrict __nptr,
  1204.         char **__restrict __endptr, int __base)
  1205.      throw () __attribute__ ((__nonnull__ (1))) ;
  1206.  
  1207. __extension__
  1208. extern unsigned long long int strtouq (__const char *__restrict __nptr,
  1209.            char **__restrict __endptr, int __base)
  1210.      throw () __attribute__ ((__nonnull__ (1))) ;
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216. __extension__
  1217. extern long long int strtoll (__const char *__restrict __nptr,
  1218.          char **__restrict __endptr, int __base)
  1219.      throw () __attribute__ ((__nonnull__ (1))) ;
  1220.  
  1221. __extension__
  1222. extern unsigned long long int strtoull (__const char *__restrict __nptr,
  1223.      char **__restrict __endptr, int __base)
  1224.      throw () __attribute__ ((__nonnull__ (1))) ;
  1225.  
  1226. # 236 "/usr/include/stdlib.h" 3 4
  1227. # 1 "/usr/include/xlocale.h" 1 3 4
  1228. # 28 "/usr/include/xlocale.h" 3 4
  1229. typedef struct __locale_struct
  1230. {
  1231.  
  1232.   struct __locale_data *__locales[13];
  1233.  
  1234.  
  1235.   const unsigned short int *__ctype_b;
  1236.   const int *__ctype_tolower;
  1237.   const int *__ctype_toupper;
  1238.  
  1239.  
  1240.   const char *__names[13];
  1241. } *__locale_t;
  1242.  
  1243.  
  1244. typedef __locale_t locale_t;
  1245. # 237 "/usr/include/stdlib.h" 2 3 4
  1246.  
  1247.  
  1248.  
  1249. extern long int strtol_l (__const char *__restrict __nptr,
  1250.      char **__restrict __endptr, int __base,
  1251.      __locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4))) ;
  1252.  
  1253. extern unsigned long int strtoul_l (__const char *__restrict __nptr,
  1254.         char **__restrict __endptr,
  1255.         int __base, __locale_t __loc)
  1256.      throw () __attribute__ ((__nonnull__ (1, 4))) ;
  1257.  
  1258. __extension__
  1259. extern long long int strtoll_l (__const char *__restrict __nptr,
  1260.     char **__restrict __endptr, int __base,
  1261.     __locale_t __loc)
  1262.      throw () __attribute__ ((__nonnull__ (1, 4))) ;
  1263.  
  1264. __extension__
  1265. extern unsigned long long int strtoull_l (__const char *__restrict __nptr,
  1266.        char **__restrict __endptr,
  1267.        int __base, __locale_t __loc)
  1268.      throw () __attribute__ ((__nonnull__ (1, 4))) ;
  1269.  
  1270. extern double strtod_l (__const char *__restrict __nptr,
  1271.    char **__restrict __endptr, __locale_t __loc)
  1272.      throw () __attribute__ ((__nonnull__ (1, 3))) ;
  1273.  
  1274. extern float strtof_l (__const char *__restrict __nptr,
  1275.          char **__restrict __endptr, __locale_t __loc)
  1276.      throw () __attribute__ ((__nonnull__ (1, 3))) ;
  1277.  
  1278. extern long double strtold_l (__const char *__restrict __nptr,
  1279.          char **__restrict __endptr,
  1280.          __locale_t __loc)
  1281.      throw () __attribute__ ((__nonnull__ (1, 3))) ;
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287. extern __inline __attribute__ ((__gnu_inline__)) double
  1288. atof (__const char *__nptr) throw ()
  1289. {
  1290.   return strtod (__nptr, (char **) __null);
  1291. }
  1292. extern __inline __attribute__ ((__gnu_inline__)) int
  1293. atoi (__const char *__nptr) throw ()
  1294. {
  1295.   return (int) strtol (__nptr, (char **) __null, 10);
  1296. }
  1297. extern __inline __attribute__ ((__gnu_inline__)) long int
  1298. atol (__const char *__nptr) throw ()
  1299. {
  1300.   return strtol (__nptr, (char **) __null, 10);
  1301. }
  1302.  
  1303.  
  1304.  
  1305.  
  1306. __extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int
  1307. atoll (__const char *__nptr) throw ()
  1308. {
  1309.   return strtoll (__nptr, (char **) __null, 10);
  1310. }
  1311.  
  1312. # 311 "/usr/include/stdlib.h" 3 4
  1313. extern char *l64a (long int __n) throw () ;
  1314.  
  1315.  
  1316. extern long int a64l (__const char *__s)
  1317.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
  1318.  
  1319.  
  1320.  
  1321.  
  1322. # 1 "/usr/include/arm-linux-gnueabihf/sys/types.h" 1 3 4
  1323. # 28 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4
  1324. extern "C" {
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330. typedef __u_char u_char;
  1331. typedef __u_short u_short;
  1332. typedef __u_int u_int;
  1333. typedef __u_long u_long;
  1334. typedef __quad_t quad_t;
  1335. typedef __u_quad_t u_quad_t;
  1336. typedef __fsid_t fsid_t;
  1337.  
  1338.  
  1339.  
  1340.  
  1341. typedef __loff_t loff_t;
  1342.  
  1343.  
  1344.  
  1345. typedef __ino_t ino_t;
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352. typedef __ino64_t ino64_t;
  1353.  
  1354.  
  1355.  
  1356.  
  1357. typedef __dev_t dev_t;
  1358.  
  1359.  
  1360.  
  1361.  
  1362. typedef __gid_t gid_t;
  1363.  
  1364.  
  1365.  
  1366.  
  1367. typedef __mode_t mode_t;
  1368.  
  1369.  
  1370.  
  1371.  
  1372. typedef __nlink_t nlink_t;
  1373.  
  1374.  
  1375.  
  1376.  
  1377. typedef __uid_t uid_t;
  1378. # 99 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4
  1379. typedef __pid_t pid_t;
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385. typedef __id_t id_t;
  1386. # 116 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4
  1387. typedef __daddr_t daddr_t;
  1388. typedef __caddr_t caddr_t;
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394. typedef __key_t key_t;
  1395. # 133 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4
  1396. # 1 "/usr/include/time.h" 1 3 4
  1397. # 58 "/usr/include/time.h" 3 4
  1398.  
  1399.  
  1400. typedef __clock_t clock_t;
  1401.  
  1402.  
  1403.  
  1404. # 74 "/usr/include/time.h" 3 4
  1405.  
  1406.  
  1407. typedef __time_t time_t;
  1408.  
  1409.  
  1410.  
  1411. # 92 "/usr/include/time.h" 3 4
  1412. typedef __clockid_t clockid_t;
  1413. # 104 "/usr/include/time.h" 3 4
  1414. typedef __timer_t timer_t;
  1415. # 134 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4
  1416.  
  1417.  
  1418.  
  1419. typedef __useconds_t useconds_t;
  1420.  
  1421.  
  1422.  
  1423. typedef __suseconds_t suseconds_t;
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429. # 1 "/usr/lib/gcc/arm-linux-gnueabihf/4.6/include/stddef.h" 1 3 4
  1430. # 148 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4
  1431.  
  1432.  
  1433.  
  1434. typedef unsigned long int ulong;
  1435. typedef unsigned short int ushort;
  1436. typedef unsigned int uint;
  1437. # 195 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4
  1438. typedef int int8_t __attribute__ ((__mode__ (__QI__)));
  1439. typedef int int16_t __attribute__ ((__mode__ (__HI__)));
  1440. typedef int int32_t __attribute__ ((__mode__ (__SI__)));
  1441. typedef int int64_t __attribute__ ((__mode__ (__DI__)));
  1442.  
  1443.  
  1444. typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
  1445. typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
  1446. typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
  1447. typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
  1448.  
  1449. typedef int register_t __attribute__ ((__mode__ (__word__)));
  1450. # 220 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4
  1451. # 1 "/usr/include/arm-linux-gnueabihf/sys/select.h" 1 3 4
  1452. # 31 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4
  1453. # 1 "/usr/include/arm-linux-gnueabihf/bits/select.h" 1 3 4
  1454. # 32 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4
  1455.  
  1456.  
  1457. # 1 "/usr/include/arm-linux-gnueabihf/bits/sigset.h" 1 3 4
  1458. # 24 "/usr/include/arm-linux-gnueabihf/bits/sigset.h" 3 4
  1459. typedef int __sig_atomic_t;
  1460.  
  1461.  
  1462.  
  1463.  
  1464. typedef struct
  1465.   {
  1466.     unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
  1467.   } __sigset_t;
  1468. # 35 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4
  1469.  
  1470.  
  1471.  
  1472. typedef __sigset_t sigset_t;
  1473.  
  1474.  
  1475.  
  1476.  
  1477.  
  1478. # 1 "/usr/include/time.h" 1 3 4
  1479. # 120 "/usr/include/time.h" 3 4
  1480. struct timespec
  1481.   {
  1482.     __time_t tv_sec;
  1483.     long int tv_nsec;
  1484.   };
  1485. # 45 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4
  1486.  
  1487. # 1 "/usr/include/arm-linux-gnueabihf/bits/time.h" 1 3 4
  1488. # 75 "/usr/include/arm-linux-gnueabihf/bits/time.h" 3 4
  1489. struct timeval
  1490.   {
  1491.     __time_t tv_sec;
  1492.     __suseconds_t tv_usec;
  1493.   };
  1494. # 47 "/usr/include/arm-linux-gnueabihf/sys/select.h" 2 3 4
  1495. # 55 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4
  1496. typedef long int __fd_mask;
  1497. # 67 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4
  1498. typedef struct
  1499.   {
  1500.  
  1501.  
  1502.  
  1503.     __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.   } fd_set;
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516. typedef __fd_mask fd_mask;
  1517. # 99 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4
  1518. extern "C" {
  1519. # 109 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4
  1520. extern int select (int __nfds, fd_set *__restrict __readfds,
  1521.      fd_set *__restrict __writefds,
  1522.      fd_set *__restrict __exceptfds,
  1523.      struct timeval *__restrict __timeout);
  1524. # 121 "/usr/include/arm-linux-gnueabihf/sys/select.h" 3 4
  1525. extern int pselect (int __nfds, fd_set *__restrict __readfds,
  1526.       fd_set *__restrict __writefds,
  1527.       fd_set *__restrict __exceptfds,
  1528.       const struct timespec *__restrict __timeout,
  1529.       const __sigset_t *__restrict __sigmask);
  1530.  
  1531.  
  1532. }
  1533. # 221 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4
  1534.  
  1535.  
  1536. # 1 "/usr/include/arm-linux-gnueabihf/sys/sysmacros.h" 1 3 4
  1537. # 30 "/usr/include/arm-linux-gnueabihf/sys/sysmacros.h" 3 4
  1538. __extension__
  1539. extern unsigned int gnu_dev_major (unsigned long long int __dev)
  1540.      throw ();
  1541. __extension__
  1542. extern unsigned int gnu_dev_minor (unsigned long long int __dev)
  1543.      throw ();
  1544. __extension__
  1545. extern unsigned long long int gnu_dev_makedev (unsigned int __major,
  1546.             unsigned int __minor)
  1547.      throw ();
  1548.  
  1549.  
  1550. __extension__ extern __inline __attribute__ ((__gnu_inline__)) unsigned int
  1551. gnu_dev_major (unsigned long long int __dev) throw ()
  1552. {
  1553.   return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
  1554. }
  1555.  
  1556. __extension__ extern __inline __attribute__ ((__gnu_inline__)) unsigned int
  1557. gnu_dev_minor (unsigned long long int __dev) throw ()
  1558. {
  1559.   return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
  1560. }
  1561.  
  1562. __extension__ extern __inline __attribute__ ((__gnu_inline__)) unsigned long long int
  1563. gnu_dev_makedev (unsigned int __major, unsigned int __minor) throw ()
  1564. {
  1565.   return ((__minor & 0xff) | ((__major & 0xfff) << 8)
  1566.    | (((unsigned long long int) (__minor & ~0xff)) << 12)
  1567.    | (((unsigned long long int) (__major & ~0xfff)) << 32));
  1568. }
  1569. # 224 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575. typedef __blksize_t blksize_t;
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582. typedef __blkcnt_t blkcnt_t;
  1583.  
  1584.  
  1585.  
  1586. typedef __fsblkcnt_t fsblkcnt_t;
  1587.  
  1588.  
  1589.  
  1590. typedef __fsfilcnt_t fsfilcnt_t;
  1591. # 263 "/usr/include/arm-linux-gnueabihf/sys/types.h" 3 4
  1592. typedef __blkcnt64_t blkcnt64_t;
  1593. typedef __fsblkcnt64_t fsblkcnt64_t;
  1594. typedef __fsfilcnt64_t fsfilcnt64_t;
  1595.  
  1596.  
  1597.  
  1598.  
  1599.  
  1600. # 1 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h" 1 3 4
  1601. # 38 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h" 3 4
  1602. typedef unsigned long int pthread_t;
  1603.  
  1604.  
  1605. typedef union
  1606. {
  1607.   char __size[36];
  1608.   long int __align;
  1609. } pthread_attr_t;
  1610.  
  1611.  
  1612. typedef struct __pthread_internal_slist
  1613. {
  1614.   struct __pthread_internal_slist *__next;
  1615. } __pthread_slist_t;
  1616.  
  1617.  
  1618.  
  1619.  
  1620. typedef union
  1621. {
  1622.   struct __pthread_mutex_s
  1623.   {
  1624.     int __lock;
  1625.     unsigned int __count;
  1626.     int __owner;
  1627.  
  1628.  
  1629.     int __kind;
  1630.     unsigned int __nusers;
  1631.     __extension__ union
  1632.     {
  1633.       int __spins;
  1634.       __pthread_slist_t __list;
  1635.     };
  1636.   } __data;
  1637.   char __size[24];
  1638.   long int __align;
  1639. } pthread_mutex_t;
  1640.  
  1641. typedef union
  1642. {
  1643.   char __size[4];
  1644.   long int __align;
  1645. } pthread_mutexattr_t;
  1646.  
  1647.  
  1648.  
  1649.  
  1650. typedef union
  1651. {
  1652.   struct
  1653.   {
  1654.     int __lock;
  1655.     unsigned int __futex;
  1656.     __extension__ unsigned long long int __total_seq;
  1657.     __extension__ unsigned long long int __wakeup_seq;
  1658.     __extension__ unsigned long long int __woken_seq;
  1659.     void *__mutex;
  1660.     unsigned int __nwaiters;
  1661.     unsigned int __broadcast_seq;
  1662.   } __data;
  1663.   char __size[48];
  1664.   __extension__ long long int __align;
  1665. } pthread_cond_t;
  1666.  
  1667. typedef union
  1668. {
  1669.   char __size[4];
  1670.   long int __align;
  1671. } pthread_condattr_t;
  1672.  
  1673.  
  1674.  
  1675. typedef unsigned int pthread_key_t;
  1676.  
  1677.  
  1678.  
  1679. typedef int pthread_once_t;
  1680.  
  1681.  
  1682.  
  1683.  
  1684.  
  1685. typedef union
  1686. {
  1687.   struct
  1688.   {
  1689.     int __lock;
  1690.     unsigned int __nr_readers;
  1691.     unsigned int __readers_wakeup;
  1692.     unsigned int __writer_wakeup;
  1693.     unsigned int __nr_readers_queued;
  1694.     unsigned int __nr_writers_queued;
  1695. # 141 "/usr/include/arm-linux-gnueabihf/bits/pthreadtypes.h" 3 4
  1696.     unsigned char __flags;
  1697.     unsigned char __shared;
  1698.     unsigned char __pad1;
  1699.     unsigned char __pad2;
  1700.  
  1701.     int __writer;
  1702.   } __data;
  1703.   char __size[32];
  1704.   long int __align;
  1705. } pthread_rwlock_t;
  1706.  
  1707. typedef union
  1708. {
  1709.   char __size[8];
  1710.   long int __align;
  1711. } pthread_rwlockattr_t;
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717. typedef volatile int pthread_spinlock_t;
  1718.  
  1719.  
  1720.  
  1721.  
  1722. typedef union
  1723. {
  1724.   char __size[20];
  1725.   long int __align;
  1726. } pthread_barrier_t;
  1727.  
  1728. typedef union
  1729. {
  1730.   char __size[4];
  1731.   int __align;
  1732. } pthread_barrierattr_t;
  1733. # 272 "/usr/include/arm-linux-gnueabihf/sys/types.h" 2 3 4
  1734.  
  1735.  
  1736. }
  1737. # 321 "/usr/include/stdlib.h" 2 3 4
  1738.  
  1739.  
  1740.  
  1741.  
  1742.  
  1743.  
  1744. extern long int random (void) throw ();
  1745.  
  1746.  
  1747. extern void srandom (unsigned int __seed) throw ();
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753. extern char *initstate (unsigned int __seed, char *__statebuf,
  1754.    size_t __statelen) throw () __attribute__ ((__nonnull__ (2)));
  1755.  
  1756.  
  1757.  
  1758. extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1)));
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766. struct random_data
  1767.   {
  1768.     int32_t *fptr;
  1769.     int32_t *rptr;
  1770.     int32_t *state;
  1771.     int rand_type;
  1772.     int rand_deg;
  1773.     int rand_sep;
  1774.     int32_t *end_ptr;
  1775.   };
  1776.  
  1777. extern int random_r (struct random_data *__restrict __buf,
  1778.        int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
  1779.  
  1780. extern int srandom_r (unsigned int __seed, struct random_data *__buf)
  1781.      throw () __attribute__ ((__nonnull__ (2)));
  1782.  
  1783. extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
  1784.    size_t __statelen,
  1785.    struct random_data *__restrict __buf)
  1786.      throw () __attribute__ ((__nonnull__ (2, 4)));
  1787.  
  1788. extern int setstate_r (char *__restrict __statebuf,
  1789.          struct random_data *__restrict __buf)
  1790.      throw () __attribute__ ((__nonnull__ (1, 2)));
  1791.  
  1792.  
  1793.  
  1794.  
  1795.  
  1796.  
  1797. extern int rand (void) throw ();
  1798.  
  1799. extern void srand (unsigned int __seed) throw ();
  1800.  
  1801.  
  1802.  
  1803.  
  1804. extern int rand_r (unsigned int *__seed) throw ();
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812. extern double drand48 (void) throw ();
  1813. extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1)));
  1814.  
  1815.  
  1816. extern long int lrand48 (void) throw ();
  1817. extern long int nrand48 (unsigned short int __xsubi[3])
  1818.      throw () __attribute__ ((__nonnull__ (1)));
  1819.  
  1820.  
  1821. extern long int mrand48 (void) throw ();
  1822. extern long int jrand48 (unsigned short int __xsubi[3])
  1823.      throw () __attribute__ ((__nonnull__ (1)));
  1824.  
  1825.  
  1826. extern void srand48 (long int __seedval) throw ();
  1827. extern unsigned short int *seed48 (unsigned short int __seed16v[3])
  1828.      throw () __attribute__ ((__nonnull__ (1)));
  1829. extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1)));
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835. struct drand48_data
  1836.   {
  1837.     unsigned short int __x[3];
  1838.     unsigned short int __old_x[3];
  1839.     unsigned short int __c;
  1840.     unsigned short int __init;
  1841.     unsigned long long int __a;
  1842.   };
  1843.  
  1844.  
  1845. extern int drand48_r (struct drand48_data *__restrict __buffer,
  1846.         double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
  1847. extern int erand48_r (unsigned short int __xsubi[3],
  1848.         struct drand48_data *__restrict __buffer,
  1849.         double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
  1850.  
  1851.  
  1852. extern int lrand48_r (struct drand48_data *__restrict __buffer,
  1853.         long int *__restrict __result)
  1854.      throw () __attribute__ ((__nonnull__ (1, 2)));
  1855. extern int nrand48_r (unsigned short int __xsubi[3],
  1856.         struct drand48_data *__restrict __buffer,
  1857.         long int *__restrict __result)
  1858.      throw () __attribute__ ((__nonnull__ (1, 2)));
  1859.  
  1860.  
  1861. extern int mrand48_r (struct drand48_data *__restrict __buffer,
  1862.         long int *__restrict __result)
  1863.      throw () __attribute__ ((__nonnull__ (1, 2)));
  1864. extern int jrand48_r (unsigned short int __xsubi[3],
  1865.         struct drand48_data *__restrict __buffer,
  1866.         long int *__restrict __result)
  1867.      throw () __attribute__ ((__nonnull__ (1, 2)));
  1868.  
  1869.  
  1870. extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
  1871.      throw () __attribute__ ((__nonnull__ (2)));
  1872.  
  1873. extern int seed48_r (unsigned short int __seed16v[3],
  1874.        struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2)));
  1875.  
  1876. extern int lcong48_r (unsigned short int __param[7],
  1877.         struct drand48_data *__buffer)
  1878.      throw () __attribute__ ((__nonnull__ (1, 2)));
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888. extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
  1889.  
  1890. extern void *calloc (size_t __nmemb, size_t __size)
  1891.      throw () __attribute__ ((__malloc__)) ;
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902. extern void *realloc (void *__ptr, size_t __size)
  1903.      throw () __attribute__ ((__warn_unused_result__));
  1904.  
  1905. extern void free (void *__ptr) throw ();
  1906.  
  1907.  
  1908.  
  1909.  
  1910. extern void cfree (void *__ptr) throw ();
  1911.  
  1912.  
  1913.  
  1914. # 1 "/usr/include/alloca.h" 1 3 4
  1915. # 25 "/usr/include/alloca.h" 3 4
  1916. # 1 "/usr/lib/gcc/arm-linux-gnueabihf/4.6/include/stddef.h" 1 3 4
  1917. # 26 "/usr/include/alloca.h" 2 3 4
  1918.  
  1919. extern "C" {
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925. extern void *alloca (size_t __size) throw ();
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931. }
  1932. # 498 "/usr/include/stdlib.h" 2 3 4
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938. extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
  1939.  
  1940.  
  1941.  
  1942.  
  1943. extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
  1944.      throw () __attribute__ ((__nonnull__ (1))) ;
  1945.  
  1946.  
  1947.  
  1948.  
  1949. extern void abort (void) throw () __attribute__ ((__noreturn__));
  1950.  
  1951.  
  1952.  
  1953. extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1)));
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960. extern "C++" int at_quick_exit (void (*__func) (void))
  1961.      throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1)));
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971. extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
  1972.      throw () __attribute__ ((__nonnull__ (1)));
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979. extern void exit (int __status) throw () __attribute__ ((__noreturn__));
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986.  
  1987. extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__));
  1988.  
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995. extern void _Exit (int __status) throw () __attribute__ ((__noreturn__));
  1996.  
  1997.  
  1998.  
  1999.  
  2000.  
  2001.  
  2002. extern char *getenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1))) ;
  2003.  
  2004.  
  2005.  
  2006.  
  2007. extern char *__secure_getenv (__const char *__name)
  2008.      throw () __attribute__ ((__nonnull__ (1))) ;
  2009.  
  2010.  
  2011.  
  2012.  
  2013.  
  2014. extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1)));
  2015.  
  2016.  
  2017.  
  2018.  
  2019.  
  2020. extern int setenv (__const char *__name, __const char *__value, int __replace)
  2021.      throw () __attribute__ ((__nonnull__ (2)));
  2022.  
  2023.  
  2024. extern int unsetenv (__const char *__name) throw () __attribute__ ((__nonnull__ (1)));
  2025.  
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031. extern int clearenv (void) throw ();
  2032. # 606 "/usr/include/stdlib.h" 3 4
  2033. extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ;
  2034. # 620 "/usr/include/stdlib.h" 3 4
  2035. extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
  2036. # 630 "/usr/include/stdlib.h" 3 4
  2037. extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ;
  2038. # 642 "/usr/include/stdlib.h" 3 4
  2039. extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
  2040. # 652 "/usr/include/stdlib.h" 3 4
  2041. extern int mkstemps64 (char *__template, int __suffixlen)
  2042.      __attribute__ ((__nonnull__ (1))) ;
  2043. # 663 "/usr/include/stdlib.h" 3 4
  2044. extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ;
  2045. # 674 "/usr/include/stdlib.h" 3 4
  2046. extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
  2047. # 684 "/usr/include/stdlib.h" 3 4
  2048. extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
  2049. # 694 "/usr/include/stdlib.h" 3 4
  2050. extern int mkostemps (char *__template, int __suffixlen, int __flags)
  2051.      __attribute__ ((__nonnull__ (1))) ;
  2052. # 706 "/usr/include/stdlib.h" 3 4
  2053. extern int mkostemps64 (char *__template, int __suffixlen, int __flags)
  2054.      __attribute__ ((__nonnull__ (1))) ;
  2055.  
  2056.  
  2057.  
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063.  
  2064. extern int system (__const char *__command) ;
  2065.  
  2066.  
  2067.  
  2068.  
  2069.  
  2070.  
  2071. extern char *canonicalize_file_name (__const char *__name)
  2072.      throw () __attribute__ ((__nonnull__ (1))) ;
  2073. # 734 "/usr/include/stdlib.h" 3 4
  2074. extern char *realpath (__const char *__restrict __name,
  2075.          char *__restrict __resolved) throw () ;
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082. typedef int (*__compar_fn_t) (__const void *, __const void *);
  2083.  
  2084.  
  2085. typedef __compar_fn_t comparison_fn_t;
  2086.  
  2087.  
  2088.  
  2089. typedef int (*__compar_d_fn_t) (__const void *, __const void *, void *);
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095. extern void *bsearch (__const void *__key, __const void *__base,
  2096.         size_t __nmemb, size_t __size, __compar_fn_t __compar)
  2097.      __attribute__ ((__nonnull__ (1, 2, 5))) ;
  2098.  
  2099.  
  2100.  
  2101. extern void qsort (void *__base, size_t __nmemb, size_t __size,
  2102.      __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
  2103.  
  2104. extern void qsort_r (void *__base, size_t __nmemb, size_t __size,
  2105.        __compar_d_fn_t __compar, void *__arg)
  2106.   __attribute__ ((__nonnull__ (1, 4)));
  2107.  
  2108.  
  2109.  
  2110.  
  2111. extern int abs (int __x) throw () __attribute__ ((__const__)) ;
  2112. extern long int labs (long int __x) throw () __attribute__ ((__const__)) ;
  2113.  
  2114.  
  2115.  
  2116. __extension__ extern long long int llabs (long long int __x)
  2117.      throw () __attribute__ ((__const__)) ;
  2118.  
  2119.  
  2120.  
  2121.  
  2122.  
  2123.  
  2124.  
  2125. extern div_t div (int __numer, int __denom)
  2126.      throw () __attribute__ ((__const__)) ;
  2127. extern ldiv_t ldiv (long int __numer, long int __denom)
  2128.      throw () __attribute__ ((__const__)) ;
  2129.  
  2130.  
  2131.  
  2132.  
  2133. __extension__ extern lldiv_t lldiv (long long int __numer,
  2134.         long long int __denom)
  2135.      throw () __attribute__ ((__const__)) ;
  2136.  
  2137. # 808 "/usr/include/stdlib.h" 3 4
  2138. extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
  2139.      int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
  2140.  
  2141.  
  2142.  
  2143.  
  2144. extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
  2145.      int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
  2146.  
  2147.  
  2148.  
  2149.  
  2150. extern char *gcvt (double __value, int __ndigit, char *__buf)
  2151.      throw () __attribute__ ((__nonnull__ (3))) ;
  2152.  
  2153.  
  2154.  
  2155.  
  2156. extern char *qecvt (long double __value, int __ndigit,
  2157.       int *__restrict __decpt, int *__restrict __sign)
  2158.      throw () __attribute__ ((__nonnull__ (3, 4))) ;
  2159. extern char *qfcvt (long double __value, int __ndigit,
  2160.       int *__restrict __decpt, int *__restrict __sign)
  2161.      throw () __attribute__ ((__nonnull__ (3, 4))) ;
  2162. extern char *qgcvt (long double __value, int __ndigit, char *__buf)
  2163.      throw () __attribute__ ((__nonnull__ (3))) ;
  2164.  
  2165.  
  2166.  
  2167.  
  2168. extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
  2169.      int *__restrict __sign, char *__restrict __buf,
  2170.      size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
  2171. extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
  2172.      int *__restrict __sign, char *__restrict __buf,
  2173.      size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
  2174.  
  2175. extern int qecvt_r (long double __value, int __ndigit,
  2176.       int *__restrict __decpt, int *__restrict __sign,
  2177.       char *__restrict __buf, size_t __len)
  2178.      throw () __attribute__ ((__nonnull__ (3, 4, 5)));
  2179. extern int qfcvt_r (long double __value, int __ndigit,
  2180.       int *__restrict __decpt, int *__restrict __sign,
  2181.       char *__restrict __buf, size_t __len)
  2182.      throw () __attribute__ ((__nonnull__ (3, 4, 5)));
  2183.  
  2184.  
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190. extern int mblen (__const char *__s, size_t __n) throw () ;
  2191.  
  2192.  
  2193. extern int mbtowc (wchar_t *__restrict __pwc,
  2194.      __const char *__restrict __s, size_t __n) throw () ;
  2195.  
  2196.  
  2197. extern int wctomb (char *__s, wchar_t __wchar) throw () ;
  2198.  
  2199.  
  2200.  
  2201. extern size_t mbstowcs (wchar_t *__restrict __pwcs,
  2202.    __const char *__restrict __s, size_t __n) throw ();
  2203.  
  2204. extern size_t wcstombs (char *__restrict __s,
  2205.    __const wchar_t *__restrict __pwcs, size_t __n)
  2206.      throw ();
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215. extern int rpmatch (__const char *__response) throw () __attribute__ ((__nonnull__ (1))) ;
  2216. # 896 "/usr/include/stdlib.h" 3 4
  2217. extern int getsubopt (char **__restrict __optionp,
  2218.         char *__const *__restrict __tokens,
  2219.         char **__restrict __valuep)
  2220.      throw () __attribute__ ((__nonnull__ (1, 2, 3))) ;
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226. extern void setkey (__const char *__key) throw () __attribute__ ((__nonnull__ (1)));
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234. extern int posix_openpt (int __oflag) ;
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242. extern int grantpt (int __fd) throw ();
  2243.  
  2244.  
  2245.  
  2246. extern int unlockpt (int __fd) throw ();
  2247.  
  2248.  
  2249.  
  2250.  
  2251. extern char *ptsname (int __fd) throw () ;
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258. extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
  2259.      throw () __attribute__ ((__nonnull__ (2)));
  2260.  
  2261.  
  2262. extern int getpt (void);
  2263.  
  2264.  
  2265.  
  2266.  
  2267.  
  2268.  
  2269. extern int getloadavg (double __loadavg[], int __nelem)
  2270.      throw () __attribute__ ((__nonnull__ (1)));
  2271. # 964 "/usr/include/stdlib.h" 3 4
  2272. }
  2273. # 7 "src/burn/burnint.h" 2
  2274. # 1 "/usr/include/string.h" 1 3 4
  2275. # 29 "/usr/include/string.h" 3 4
  2276. extern "C" {
  2277.  
  2278.  
  2279.  
  2280.  
  2281. # 1 "/usr/lib/gcc/arm-linux-gnueabihf/4.6/include/stddef.h" 1 3 4
  2282. # 35 "/usr/include/string.h" 2 3 4
  2283.  
  2284.  
  2285.  
  2286.  
  2287.  
  2288.  
  2289.  
  2290.  
  2291.  
  2292. extern void *memcpy (void *__restrict __dest,
  2293.        __const void *__restrict __src, size_t __n)
  2294.      throw () __attribute__ ((__nonnull__ (1, 2)));
  2295.  
  2296.  
  2297. extern void *memmove (void *__dest, __const void *__src, size_t __n)
  2298.      throw () __attribute__ ((__nonnull__ (1, 2)));
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305. extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
  2306.         int __c, size_t __n)
  2307.      throw () __attribute__ ((__nonnull__ (1, 2)));
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313. extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
  2314.  
  2315.  
  2316. extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
  2317.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
  2318.  
  2319.  
  2320.  
  2321. extern "C++"
  2322. {
  2323. extern void *memchr (void *__s, int __c, size_t __n)
  2324.       throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
  2325. extern __const void *memchr (__const void *__s, int __c, size_t __n)
  2326.       throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
  2327.  
  2328.  
  2329. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) void *
  2330. memchr (void *__s, int __c, size_t __n) throw ()
  2331. {
  2332.   return __builtin_memchr (__s, __c, __n);
  2333. }
  2334.  
  2335. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __const void *
  2336. memchr (__const void *__s, int __c, size_t __n) throw ()
  2337. {
  2338.   return __builtin_memchr (__s, __c, __n);
  2339. }
  2340.  
  2341. }
  2342.  
  2343.  
  2344.  
  2345.  
  2346.  
  2347.  
  2348.  
  2349.  
  2350.  
  2351.  
  2352. extern "C++" void *rawmemchr (void *__s, int __c)
  2353.      throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
  2354. extern "C++" __const void *rawmemchr (__const void *__s, int __c)
  2355.      throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
  2356.  
  2357.  
  2358.  
  2359.  
  2360.  
  2361.  
  2362.  
  2363. extern "C++" void *memrchr (void *__s, int __c, size_t __n)
  2364.       throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
  2365. extern "C++" __const void *memrchr (__const void *__s, int __c, size_t __n)
  2366.       throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376. extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
  2377.      throw () __attribute__ ((__nonnull__ (1, 2)));
  2378.  
  2379. extern char *strncpy (char *__restrict __dest,
  2380.         __const char *__restrict __src, size_t __n)
  2381.      throw () __attribute__ ((__nonnull__ (1, 2)));
  2382.  
  2383.  
  2384. extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
  2385.      throw () __attribute__ ((__nonnull__ (1, 2)));
  2386.  
  2387. extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
  2388.         size_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
  2389.  
  2390.  
  2391. extern int strcmp (__const char *__s1, __const char *__s2)
  2392.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
  2393.  
  2394. extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
  2395.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
  2396.  
  2397.  
  2398. extern int strcoll (__const char *__s1, __const char *__s2)
  2399.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
  2400.  
  2401. extern size_t strxfrm (char *__restrict __dest,
  2402.          __const char *__restrict __src, size_t __n)
  2403.      throw () __attribute__ ((__nonnull__ (2)));
  2404.  
  2405. # 165 "/usr/include/string.h" 3 4
  2406. extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
  2407.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
  2408.  
  2409. extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
  2410.     __locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4)));
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416. extern char *strdup (__const char *__s)
  2417.      throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424. extern char *strndup (__const char *__string, size_t __n)
  2425.      throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
  2426. # 210 "/usr/include/string.h" 3 4
  2427.  
  2428.  
  2429.  
  2430. extern "C++"
  2431. {
  2432. extern char *strchr (char *__s, int __c)
  2433.      throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
  2434. extern __const char *strchr (__const char *__s, int __c)
  2435.      throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
  2436.  
  2437.  
  2438. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char *
  2439. strchr (char *__s, int __c) throw ()
  2440. {
  2441.   return __builtin_strchr (__s, __c);
  2442. }
  2443.  
  2444. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __const char *
  2445. strchr (__const char *__s, int __c) throw ()
  2446. {
  2447.   return __builtin_strchr (__s, __c);
  2448. }
  2449.  
  2450. }
  2451.  
  2452.  
  2453.  
  2454.  
  2455.  
  2456.  
  2457. extern "C++"
  2458. {
  2459. extern char *strrchr (char *__s, int __c)
  2460.      throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
  2461. extern __const char *strrchr (__const char *__s, int __c)
  2462.      throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
  2463.  
  2464.  
  2465. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char *
  2466. strrchr (char *__s, int __c) throw ()
  2467. {
  2468.   return __builtin_strrchr (__s, __c);
  2469. }
  2470.  
  2471. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __const char *
  2472. strrchr (__const char *__s, int __c) throw ()
  2473. {
  2474.   return __builtin_strrchr (__s, __c);
  2475. }
  2476.  
  2477. }
  2478.  
  2479.  
  2480.  
  2481.  
  2482.  
  2483.  
  2484.  
  2485.  
  2486.  
  2487.  
  2488. extern "C++" char *strchrnul (char *__s, int __c)
  2489.      throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
  2490. extern "C++" __const char *strchrnul (__const char *__s, int __c)
  2491.      throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
  2492.  
  2493.  
  2494.  
  2495.  
  2496.  
  2497.  
  2498.  
  2499.  
  2500.  
  2501. extern size_t strcspn (__const char *__s, __const char *__reject)
  2502.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
  2503.  
  2504.  
  2505. extern size_t strspn (__const char *__s, __const char *__accept)
  2506.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
  2507.  
  2508.  
  2509. extern "C++"
  2510. {
  2511. extern char *strpbrk (char *__s, __const char *__accept)
  2512.      throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
  2513. extern __const char *strpbrk (__const char *__s, __const char *__accept)
  2514.      throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
  2515.  
  2516.  
  2517. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char *
  2518. strpbrk (char *__s, __const char *__accept) throw ()
  2519. {
  2520.   return __builtin_strpbrk (__s, __accept);
  2521. }
  2522.  
  2523. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __const char *
  2524. strpbrk (__const char *__s, __const char *__accept) throw ()
  2525. {
  2526.   return __builtin_strpbrk (__s, __accept);
  2527. }
  2528.  
  2529. }
  2530.  
  2531.  
  2532.  
  2533.  
  2534.  
  2535.  
  2536. extern "C++"
  2537. {
  2538. extern char *strstr (char *__haystack, __const char *__needle)
  2539.      throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
  2540. extern __const char *strstr (__const char *__haystack,
  2541.         __const char *__needle)
  2542.      throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
  2543.  
  2544.  
  2545. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char *
  2546. strstr (char *__haystack, __const char *__needle) throw ()
  2547. {
  2548.   return __builtin_strstr (__haystack, __needle);
  2549. }
  2550.  
  2551. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __const char *
  2552. strstr (__const char *__haystack, __const char *__needle) throw ()
  2553. {
  2554.   return __builtin_strstr (__haystack, __needle);
  2555. }
  2556.  
  2557. }
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563.  
  2564.  
  2565. extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
  2566.      throw () __attribute__ ((__nonnull__ (2)));
  2567.  
  2568.  
  2569.  
  2570.  
  2571. extern char *__strtok_r (char *__restrict __s,
  2572.     __const char *__restrict __delim,
  2573.     char **__restrict __save_ptr)
  2574.      throw () __attribute__ ((__nonnull__ (2, 3)));
  2575.  
  2576. extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
  2577.          char **__restrict __save_ptr)
  2578.      throw () __attribute__ ((__nonnull__ (2, 3)));
  2579.  
  2580.  
  2581.  
  2582.  
  2583.  
  2584. extern "C++" char *strcasestr (char *__haystack, __const char *__needle)
  2585.      throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
  2586. extern "C++" __const char *strcasestr (__const char *__haystack,
  2587.            __const char *__needle)
  2588.      throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
  2589. # 382 "/usr/include/string.h" 3 4
  2590. extern void *memmem (__const void *__haystack, size_t __haystacklen,
  2591.        __const void *__needle, size_t __needlelen)
  2592.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
  2593.  
  2594.  
  2595.  
  2596. extern void *__mempcpy (void *__restrict __dest,
  2597.    __const void *__restrict __src, size_t __n)
  2598.      throw () __attribute__ ((__nonnull__ (1, 2)));
  2599. extern void *mempcpy (void *__restrict __dest,
  2600.         __const void *__restrict __src, size_t __n)
  2601.      throw () __attribute__ ((__nonnull__ (1, 2)));
  2602.  
  2603.  
  2604.  
  2605.  
  2606.  
  2607. extern size_t strlen (__const char *__s)
  2608.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
  2609.  
  2610.  
  2611.  
  2612.  
  2613.  
  2614. extern size_t strnlen (__const char *__string, size_t __maxlen)
  2615.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
  2616.  
  2617.  
  2618.  
  2619.  
  2620.  
  2621. extern char *strerror (int __errnum) throw ();
  2622.  
  2623. # 438 "/usr/include/string.h" 3 4
  2624. extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
  2625.      throw () __attribute__ ((__nonnull__ (2)));
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631. extern char *strerror_l (int __errnum, __locale_t __l) throw ();
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637. extern void __bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
  2638.  
  2639.  
  2640.  
  2641. extern void bcopy (__const void *__src, void *__dest, size_t __n)
  2642.      throw () __attribute__ ((__nonnull__ (1, 2)));
  2643.  
  2644.  
  2645. extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
  2646.  
  2647.  
  2648. extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
  2649.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
  2650.  
  2651.  
  2652.  
  2653. extern "C++"
  2654. {
  2655. extern char *index (char *__s, int __c)
  2656.      throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
  2657. extern __const char *index (__const char *__s, int __c)
  2658.      throw () __asm ("index") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
  2659.  
  2660.  
  2661. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char *
  2662. index (char *__s, int __c) throw ()
  2663. {
  2664.   return __builtin_index (__s, __c);
  2665. }
  2666.  
  2667. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __const char *
  2668. index (__const char *__s, int __c) throw ()
  2669. {
  2670.   return __builtin_index (__s, __c);
  2671. }
  2672.  
  2673. }
  2674.  
  2675.  
  2676.  
  2677.  
  2678.  
  2679.  
  2680.  
  2681. extern "C++"
  2682. {
  2683. extern char *rindex (char *__s, int __c)
  2684.      throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
  2685. extern __const char *rindex (__const char *__s, int __c)
  2686.      throw () __asm ("rindex") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
  2687.  
  2688.  
  2689. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) char *
  2690. rindex (char *__s, int __c) throw ()
  2691. {
  2692.   return __builtin_rindex (__s, __c);
  2693. }
  2694.  
  2695. extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__)) __const char *
  2696. rindex (__const char *__s, int __c) throw ()
  2697. {
  2698.   return __builtin_rindex (__s, __c);
  2699. }
  2700.  
  2701. }
  2702.  
  2703.  
  2704.  
  2705.  
  2706.  
  2707.  
  2708.  
  2709. extern int ffs (int __i) throw () __attribute__ ((__const__));
  2710.  
  2711.  
  2712.  
  2713.  
  2714. extern int ffsl (long int __l) throw () __attribute__ ((__const__));
  2715.  
  2716. __extension__ extern int ffsll (long long int __ll)
  2717.      throw () __attribute__ ((__const__));
  2718.  
  2719.  
  2720.  
  2721.  
  2722. extern int strcasecmp (__const char *__s1, __const char *__s2)
  2723.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
  2724.  
  2725.  
  2726. extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
  2727.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
  2728.  
  2729.  
  2730.  
  2731.  
  2732.  
  2733. extern int strcasecmp_l (__const char *__s1, __const char *__s2,
  2734.     __locale_t __loc)
  2735.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
  2736.  
  2737. extern int strncasecmp_l (__const char *__s1, __const char *__s2,
  2738.      size_t __n, __locale_t __loc)
  2739.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
  2740.  
  2741.  
  2742.  
  2743.  
  2744.  
  2745. extern char *strsep (char **__restrict __stringp,
  2746.        __const char *__restrict __delim)
  2747.      throw () __attribute__ ((__nonnull__ (1, 2)));
  2748.  
  2749.  
  2750.  
  2751.  
  2752. extern char *strsignal (int __sig) throw ();
  2753.  
  2754.  
  2755. extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
  2756.      throw () __attribute__ ((__nonnull__ (1, 2)));
  2757. extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
  2758.      throw () __attribute__ ((__nonnull__ (1, 2)));
  2759.  
  2760.  
  2761.  
  2762. extern char *__stpncpy (char *__restrict __dest,
  2763.    __const char *__restrict __src, size_t __n)
  2764.      throw () __attribute__ ((__nonnull__ (1, 2)));
  2765. extern char *stpncpy (char *__restrict __dest,
  2766.         __const char *__restrict __src, size_t __n)
  2767.      throw () __attribute__ ((__nonnull__ (1, 2)));
  2768.  
  2769.  
  2770.  
  2771.  
  2772. extern int strverscmp (__const char *__s1, __const char *__s2)
  2773.      throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
  2774.  
  2775.  
  2776. extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1)));
  2777.  
  2778.  
  2779. extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
  2780.  
  2781.  
  2782.  
  2783.  
  2784.  
  2785.  
  2786.  
  2787. extern "C++" char *basename (char *__filename)
  2788.      throw () __asm ("basename") __attribute__ ((__nonnull__ (1)));
  2789. extern "C++" __const char *basename (__const char *__filename)
  2790.      throw () __asm ("basename") __attribute__ ((__nonnull__ (1)));
  2791. # 646 "/usr/include/string.h" 3 4
  2792. }
  2793. # 8 "src/burn/burnint.h" 2
  2794. # 1 "/usr/include/assert.h" 1 3 4
  2795. # 9 "src/burn/burnint.h" 2
  2796.  
  2797.  
  2798.  
  2799.  
  2800. # 1 "src/burner/libretro/tchar/tchar.h" 1
  2801.  
  2802.  
  2803.  
  2804. # 1 "/usr/lib/gcc/arm-linux-gnueabihf/4.6/include/stdint.h" 1 3 4
  2805.  
  2806.  
  2807. # 1 "/usr/include/stdint.h" 1 3 4
  2808. # 27 "/usr/include/stdint.h" 3 4
  2809. # 1 "/usr/include/arm-linux-gnueabihf/bits/wchar.h" 1 3 4
  2810. # 28 "/usr/include/stdint.h" 2 3 4
  2811. # 1 "/usr/include/arm-linux-gnueabihf/bits/wordsize.h" 1 3 4
  2812. # 29 "/usr/include/stdint.h" 2 3 4
  2813. # 49 "/usr/include/stdint.h" 3 4
  2814. typedef unsigned char uint8_t;
  2815. typedef unsigned short int uint16_t;
  2816.  
  2817. typedef unsigned int uint32_t;
  2818.  
  2819.  
  2820.  
  2821.  
  2822.  
  2823. __extension__
  2824. typedef unsigned long long int uint64_t;
  2825.  
  2826.  
  2827.  
  2828.  
  2829.  
  2830.  
  2831. typedef signed char int_least8_t;
  2832. typedef short int int_least16_t;
  2833. typedef int int_least32_t;
  2834.  
  2835.  
  2836.  
  2837. __extension__
  2838. typedef long long int int_least64_t;
  2839.  
  2840.  
  2841.  
  2842. typedef unsigned char uint_least8_t;
  2843. typedef unsigned short int uint_least16_t;
  2844. typedef unsigned int uint_least32_t;
  2845.  
  2846.  
  2847.  
  2848. __extension__
  2849. typedef unsigned long long int uint_least64_t;
  2850.  
  2851.  
  2852.  
  2853.  
  2854.  
  2855.  
  2856. typedef signed char int_fast8_t;
  2857.  
  2858.  
  2859.  
  2860.  
  2861.  
  2862. typedef int int_fast16_t;
  2863. typedef int int_fast32_t;
  2864. __extension__
  2865. typedef long long int int_fast64_t;
  2866.  
  2867.  
  2868.  
  2869. typedef unsigned char uint_fast8_t;
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875. typedef unsigned int uint_fast16_t;
  2876. typedef unsigned int uint_fast32_t;
  2877. __extension__
  2878. typedef unsigned long long int uint_fast64_t;
  2879. # 126 "/usr/include/stdint.h" 3 4
  2880. typedef int intptr_t;
  2881.  
  2882.  
  2883. typedef unsigned int uintptr_t;
  2884. # 138 "/usr/include/stdint.h" 3 4
  2885. __extension__
  2886. typedef long long int intmax_t;
  2887. __extension__
  2888. typedef unsigned long long int uintmax_t;
  2889. # 4 "/usr/lib/gcc/arm-linux-gnueabihf/4.6/include/stdint.h" 2 3 4
  2890. # 5 "src/burner/libretro/tchar/tchar.h" 2
  2891. # 1 "/usr/include/wchar.h" 1 3 4
  2892. # 52 "/usr/include/wchar.h" 3 4
  2893. # 1 "/usr/lib/gcc/arm-linux-gnueabihf/4.6/include/stddef.h" 1 3 4
  2894. # 353 "/usr/lib/gcc/arm-linux-gnueabihf/4.6/include/stddef.h" 3 4
  2895. typedef unsigned int wint_t;
  2896. # 53 "/usr/include/wchar.h" 2 3 4
  2897. # 104 "/usr/include/wchar.h" 3 4
  2898.  
  2899.  
  2900. typedef __mbstate_t mbstate_t;
  2901.  
  2902.  
  2903.  
  2904. # 129 "/usr/include/wchar.h" 3 4
  2905. extern "C" {
  2906.  
  2907.  
  2908.  
  2909.  
  2910. struct tm;
  2911.  
  2912.  
  2913.  
  2914.  
  2915.  
  2916.  
  2917.  
  2918.  
  2919.  
  2920. extern wchar_t *wcscpy (wchar_t *__restrict __dest,
  2921.    __const wchar_t *__restrict __src) throw ();
  2922.  
  2923. extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
  2924.     __const wchar_t *__restrict __src, size_t __n)
  2925.      throw ();
  2926.  
  2927.  
  2928. extern wchar_t *wcscat (wchar_t *__restrict __dest,
  2929.    __const wchar_t *__restrict __src) throw ();
  2930.  
  2931. extern wchar_t *wcsncat (wchar_t *__restrict __dest,
  2932.     __const wchar_t *__restrict __src, size_t __n)
  2933.      throw ();
  2934.  
  2935.  
  2936. extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2)
  2937.      throw () __attribute__ ((__pure__));
  2938.  
  2939. extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n)
  2940.      throw () __attribute__ ((__pure__));
  2941.  
  2942.  
  2943.  
  2944.  
  2945. extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) throw ();
  2946.  
  2947.  
  2948. extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2,
  2949.    size_t __n) throw ();
  2950.  
  2951.  
  2952.  
  2953.  
  2954.  
  2955. extern int wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
  2956.     __locale_t __loc) throw ();
  2957.  
  2958. extern int wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
  2959.      size_t __n, __locale_t __loc) throw ();
  2960.  
  2961.  
  2962.  
  2963.  
  2964.  
  2965. extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) throw ();
  2966.  
  2967.  
  2968.  
  2969. extern size_t wcsxfrm (wchar_t *__restrict __s1,
  2970.          __const wchar_t *__restrict __s2, size_t __n) throw ();
  2971.  
  2972.  
  2973.  
  2974.  
  2975.  
  2976.  
  2977.  
  2978.  
  2979. extern int wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2,
  2980.         __locale_t __loc) throw ();
  2981.  
  2982.  
  2983.  
  2984.  
  2985. extern size_t wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2,
  2986.     size_t __n, __locale_t __loc) throw ();
  2987.  
  2988.  
  2989. extern wchar_t *wcsdup (__const wchar_t *__s) throw () __attribute__ ((__malloc__));
  2990.  
  2991.  
  2992.  
  2993.  
  2994.  
  2995. extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc)
  2996.      throw () __asm ("wcschr") __attribute__ ((__pure__));
  2997. extern "C++" __const wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc)
  2998.      throw () __asm ("wcschr") __attribute__ ((__pure__));
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005. extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc)
  3006.      throw () __asm ("wcsrchr") __attribute__ ((__pure__));
  3007. extern "C++" __const wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc)
  3008.      throw () __asm ("wcsrchr") __attribute__ ((__pure__));
  3009.  
  3010.  
  3011.  
  3012.  
  3013.  
  3014.  
  3015.  
  3016.  
  3017.  
  3018. extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc)
  3019.      throw () __attribute__ ((__pure__));
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025. extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject)
  3026.      throw () __attribute__ ((__pure__));
  3027.  
  3028.  
  3029. extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept)
  3030.      throw () __attribute__ ((__pure__));
  3031.  
  3032.  
  3033. extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, __const wchar_t *__accept)
  3034.      throw () __asm ("wcspbrk") __attribute__ ((__pure__));
  3035. extern "C++" __const wchar_t *wcspbrk (__const wchar_t *__wcs,
  3036.            __const wchar_t *__accept)
  3037.      throw () __asm ("wcspbrk") __attribute__ ((__pure__));
  3038.  
  3039.  
  3040.  
  3041.  
  3042.  
  3043.  
  3044. extern "C++" wchar_t *wcsstr (wchar_t *__haystack, __const wchar_t *__needle)
  3045.      throw () __asm ("wcsstr") __attribute__ ((__pure__));
  3046. extern "C++" __const wchar_t *wcsstr (__const wchar_t *__haystack,
  3047.           __const wchar_t *__needle)
  3048.      throw () __asm ("wcsstr") __attribute__ ((__pure__));
  3049.  
  3050.  
  3051.  
  3052.  
  3053.  
  3054.  
  3055. extern wchar_t *wcstok (wchar_t *__restrict __s,
  3056.    __const wchar_t *__restrict __delim,
  3057.    wchar_t **__restrict __ptr) throw ();
  3058.  
  3059.  
  3060. extern size_t wcslen (__const wchar_t *__s) throw () __attribute__ ((__pure__));
  3061.  
  3062.  
  3063.  
  3064.  
  3065.  
  3066. extern "C++" wchar_t *wcswcs (wchar_t *__haystack, __const wchar_t *__needle)
  3067.      throw () __asm ("wcswcs") __attribute__ ((__pure__));
  3068. extern "C++" __const wchar_t *wcswcs (__const wchar_t *__haystack,
  3069.           __const wchar_t *__needle)
  3070.      throw () __asm ("wcswcs") __attribute__ ((__pure__));
  3071. # 303 "/usr/include/wchar.h" 3 4
  3072. extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen)
  3073.      throw () __attribute__ ((__pure__));
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079.  
  3080. extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n)
  3081.      throw () __asm ("wmemchr") __attribute__ ((__pure__));
  3082. extern "C++" __const wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c,
  3083.            size_t __n)
  3084.      throw () __asm ("wmemchr") __attribute__ ((__pure__));
  3085.  
  3086.  
  3087.  
  3088.  
  3089.  
  3090.  
  3091. extern int wmemcmp (__const wchar_t *__restrict __s1,
  3092.       __const wchar_t *__restrict __s2, size_t __n)
  3093.      throw () __attribute__ ((__pure__));
  3094.  
  3095.  
  3096. extern wchar_t *wmemcpy (wchar_t *__restrict __s1,
  3097.     __const wchar_t *__restrict __s2, size_t __n) throw ();
  3098.  
  3099.  
  3100.  
  3101. extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n)
  3102.      throw ();
  3103.  
  3104.  
  3105. extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw ();
  3106.  
  3107.  
  3108.  
  3109.  
  3110.  
  3111. extern wchar_t *wmempcpy (wchar_t *__restrict __s1,
  3112.      __const wchar_t *__restrict __s2, size_t __n)
  3113.      throw ();
  3114.  
  3115.  
  3116.  
  3117.  
  3118.  
  3119.  
  3120. extern wint_t btowc (int __c) throw ();
  3121.  
  3122.  
  3123.  
  3124. extern int wctob (wint_t __c) throw ();
  3125.  
  3126.  
  3127.  
  3128. extern int mbsinit (__const mbstate_t *__ps) throw () __attribute__ ((__pure__));
  3129.  
  3130.  
  3131.  
  3132. extern size_t mbrtowc (wchar_t *__restrict __pwc,
  3133.          __const char *__restrict __s, size_t __n,
  3134.          mbstate_t *__p) throw ();
  3135.  
  3136.  
  3137. extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,
  3138.          mbstate_t *__restrict __ps) throw ();
  3139.  
  3140.  
  3141. extern size_t __mbrlen (__const char *__restrict __s, size_t __n,
  3142.    mbstate_t *__restrict __ps) throw ();
  3143. extern size_t mbrlen (__const char *__restrict __s, size_t __n,
  3144.         mbstate_t *__restrict __ps) throw ();
  3145.  
  3146.  
  3147.  
  3148.  
  3149.  
  3150.  
  3151.  
  3152.  
  3153. extern wint_t __btowc_alias (int __c) __asm ("btowc");
  3154. extern __inline __attribute__ ((__gnu_inline__)) wint_t
  3155. btowc (int __c) throw ()
  3156. { return (__builtin_constant_p (__c) && __c >= '\0' && __c <= '\x7f'
  3157.    ? (wint_t) __c : __btowc_alias (__c)); }
  3158.  
  3159. extern int __wctob_alias (wint_t __c) __asm ("wctob");
  3160. extern __inline __attribute__ ((__gnu_inline__)) int
  3161. wctob (wint_t __wc) throw ()
  3162. { return (__builtin_constant_p (__wc) && __wc >= L'\0' && __wc <= L'\x7f'
  3163.    ? (int) __wc : __wctob_alias (__wc)); }
  3164.  
  3165. extern __inline __attribute__ ((__gnu_inline__)) size_t
  3166. mbrlen (__const char *__restrict __s, size_t __n, mbstate_t *__restrict __ps) throw ()
  3167.  
  3168. { return (__ps != __null
  3169.    ? mbrtowc (__null, __s, __n, __ps) : __mbrlen (__s, __n, __null)); }
  3170.  
  3171.  
  3172.  
  3173.  
  3174.  
  3175. extern size_t mbsrtowcs (wchar_t *__restrict __dst,
  3176.     __const char **__restrict __src, size_t __len,
  3177.     mbstate_t *__restrict __ps) throw ();
  3178.  
  3179.  
  3180.  
  3181. extern size_t wcsrtombs (char *__restrict __dst,
  3182.     __const wchar_t **__restrict __src, size_t __len,
  3183.     mbstate_t *__restrict __ps) throw ();
  3184.  
  3185.  
  3186.  
  3187.  
  3188.  
  3189.  
  3190. extern size_t mbsnrtowcs (wchar_t *__restrict __dst,
  3191.      __const char **__restrict __src, size_t __nmc,
  3192.      size_t __len, mbstate_t *__restrict __ps) throw ();
  3193.  
  3194.  
  3195.  
  3196. extern size_t wcsnrtombs (char *__restrict __dst,
  3197.      __const wchar_t **__restrict __src,
  3198.      size_t __nwc, size_t __len,
  3199.      mbstate_t *__restrict __ps) throw ();
  3200.  
  3201.  
  3202.  
  3203.  
  3204.  
  3205.  
  3206. extern int wcwidth (wchar_t __c) throw ();
  3207.  
  3208.  
  3209.  
  3210. extern int wcswidth (__const wchar_t *__s, size_t __n) throw ();
  3211.  
  3212.  
  3213.  
  3214.  
  3215.  
  3216.  
  3217. extern double wcstod (__const wchar_t *__restrict __nptr,
  3218.         wchar_t **__restrict __endptr) throw ();
  3219.  
  3220.  
  3221.  
  3222.  
  3223.  
  3224. extern float wcstof (__const wchar_t *__restrict __nptr,
  3225.        wchar_t **__restrict __endptr) throw ();
  3226. extern long double wcstold (__const wchar_t *__restrict __nptr,
  3227.        wchar_t **__restrict __endptr) throw ();
  3228.  
  3229.  
  3230.  
  3231.  
  3232.  
  3233.  
  3234.  
  3235. extern long int wcstol (__const wchar_t *__restrict __nptr,
  3236.    wchar_t **__restrict __endptr, int __base) throw ();
  3237.  
  3238.  
  3239.  
  3240. extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr,
  3241.       wchar_t **__restrict __endptr, int __base)
  3242.      throw ();
  3243.  
  3244.  
  3245.  
  3246.  
  3247.  
  3248.  
  3249. __extension__
  3250. extern long long int wcstoll (__const wchar_t *__restrict __nptr,
  3251.          wchar_t **__restrict __endptr, int __base)
  3252.      throw ();
  3253.  
  3254.  
  3255.  
  3256. __extension__
  3257. extern unsigned long long int wcstoull (__const wchar_t *__restrict __nptr,
  3258.      wchar_t **__restrict __endptr,
  3259.      int __base) throw ();
  3260.  
  3261.  
  3262.  
  3263.  
  3264.  
  3265.  
  3266. __extension__
  3267. extern long long int wcstoq (__const wchar_t *__restrict __nptr,
  3268.         wchar_t **__restrict __endptr, int __base)
  3269.      throw ();
  3270.  
  3271.  
  3272.  
  3273. __extension__
  3274. extern unsigned long long int wcstouq (__const wchar_t *__restrict __nptr,
  3275.            wchar_t **__restrict __endptr,
  3276.            int __base) throw ();
  3277. # 528 "/usr/include/wchar.h" 3 4
  3278. extern long int wcstol_l (__const wchar_t *__restrict __nptr,
  3279.      wchar_t **__restrict __endptr, int __base,
  3280.      __locale_t __loc) throw ();
  3281.  
  3282. extern unsigned long int wcstoul_l (__const wchar_t *__restrict __nptr,
  3283.         wchar_t **__restrict __endptr,
  3284.         int __base, __locale_t __loc) throw ();
  3285.  
  3286. __extension__
  3287. extern long long int wcstoll_l (__const wchar_t *__restrict __nptr,
  3288.     wchar_t **__restrict __endptr,
  3289.     int __base, __locale_t __loc) throw ();
  3290.  
  3291. __extension__
  3292. extern unsigned long long int wcstoull_l (__const wchar_t *__restrict __nptr,
  3293.        wchar_t **__restrict __endptr,
  3294.        int __base, __locale_t __loc)
  3295.      throw ();
  3296.  
  3297. extern double wcstod_l (__const wchar_t *__restrict __nptr,
  3298.    wchar_t **__restrict __endptr, __locale_t __loc)
  3299.      throw ();
  3300.  
  3301. extern float wcstof_l (__const wchar_t *__restrict __nptr,
  3302.          wchar_t **__restrict __endptr, __locale_t __loc)
  3303.      throw ();
  3304.  
  3305. extern long double wcstold_l (__const wchar_t *__restrict __nptr,
  3306.          wchar_t **__restrict __endptr,
  3307.          __locale_t __loc) throw ();
  3308.  
  3309.  
  3310.  
  3311.  
  3312. extern wchar_t *wcpcpy (wchar_t *__restrict __dest,
  3313.    __const wchar_t *__restrict __src) throw ();
  3314.  
  3315.  
  3316.  
  3317. extern wchar_t *wcpncpy (wchar_t *__restrict __dest,
  3318.     __const wchar_t *__restrict __src, size_t __n)
  3319.      throw ();
  3320. # 578 "/usr/include/wchar.h" 3 4
  3321. extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw ();
  3322.  
  3323.  
  3324.  
  3325.  
  3326.  
  3327.  
  3328. extern int fwide (__FILE *__fp, int __mode) throw ();
  3329.  
  3330.  
  3331.  
  3332.  
  3333.  
  3334.  
  3335. extern int fwprintf (__FILE *__restrict __stream,
  3336.        __const wchar_t *__restrict __format, ...)
  3337.                                                            ;
  3338.  
  3339.  
  3340.  
  3341.  
  3342. extern int wprintf (__const wchar_t *__restrict __format, ...)
  3343.                                                            ;
  3344.  
  3345. extern int swprintf (wchar_t *__restrict __s, size_t __n,
  3346.        __const wchar_t *__restrict __format, ...)
  3347.      throw () ;
  3348.  
  3349.  
  3350.  
  3351.  
  3352.  
  3353. extern int vfwprintf (__FILE *__restrict __s,
  3354.         __const wchar_t *__restrict __format,
  3355.         __gnuc_va_list __arg)
  3356.                                                            ;
  3357.  
  3358.  
  3359.  
  3360.  
  3361. extern int vwprintf (__const wchar_t *__restrict __format,
  3362.        __gnuc_va_list __arg)
  3363.                                                            ;
  3364.  
  3365.  
  3366. extern int vswprintf (wchar_t *__restrict __s, size_t __n,
  3367.         __const wchar_t *__restrict __format,
  3368.         __gnuc_va_list __arg)
  3369.      throw () ;
  3370.  
  3371.  
  3372.  
  3373.  
  3374.  
  3375.  
  3376. extern int fwscanf (__FILE *__restrict __stream,
  3377.       __const wchar_t *__restrict __format, ...)
  3378.                                                           ;
  3379.  
  3380.  
  3381.  
  3382.  
  3383. extern int wscanf (__const wchar_t *__restrict __format, ...)
  3384.                                                           ;
  3385.  
  3386. extern int swscanf (__const wchar_t *__restrict __s,
  3387.       __const wchar_t *__restrict __format, ...)
  3388.      throw () ;
  3389. # 678 "/usr/include/wchar.h" 3 4
  3390.  
  3391.  
  3392.  
  3393.  
  3394.  
  3395.  
  3396.  
  3397.  
  3398.  
  3399. extern int vfwscanf (__FILE *__restrict __s,
  3400.        __const wchar_t *__restrict __format,
  3401.        __gnuc_va_list __arg)
  3402.                                                           ;
  3403.  
  3404.  
  3405.  
  3406.  
  3407. extern int vwscanf (__const wchar_t *__restrict __format,
  3408.       __gnuc_va_list __arg)
  3409.                                                           ;
  3410.  
  3411. extern int vswscanf (__const wchar_t *__restrict __s,
  3412.        __const wchar_t *__restrict __format,
  3413.        __gnuc_va_list __arg)
  3414.      throw () ;
  3415. # 734 "/usr/include/wchar.h" 3 4
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.  
  3423.  
  3424.  
  3425. extern wint_t fgetwc (__FILE *__stream);
  3426. extern wint_t getwc (__FILE *__stream);
  3427.  
  3428.  
  3429.  
  3430.  
  3431.  
  3432. extern wint_t getwchar (void);
  3433.  
  3434.  
  3435.  
  3436.  
  3437.  
  3438.  
  3439. extern wint_t fputwc (wchar_t __wc, __FILE *__stream);
  3440. extern wint_t putwc (wchar_t __wc, __FILE *__stream);
  3441.  
  3442.  
  3443.  
  3444.  
  3445.  
  3446. extern wint_t putwchar (wchar_t __wc);
  3447.  
  3448.  
  3449.  
  3450.  
  3451.  
  3452.  
  3453.  
  3454. extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
  3455.    __FILE *__restrict __stream);
  3456.  
  3457.  
  3458.  
  3459.  
  3460.  
  3461. extern int fputws (__const wchar_t *__restrict __ws,
  3462.      __FILE *__restrict __stream);
  3463.  
  3464.  
  3465.  
  3466.  
  3467.  
  3468.  
  3469. extern wint_t ungetwc (wint_t __wc, __FILE *__stream);
  3470.  
  3471. # 799 "/usr/include/wchar.h" 3 4
  3472. extern wint_t getwc_unlocked (__FILE *__stream);
  3473. extern wint_t getwchar_unlocked (void);
  3474.  
  3475.  
  3476.  
  3477.  
  3478.  
  3479.  
  3480.  
  3481. extern wint_t fgetwc_unlocked (__FILE *__stream);
  3482.  
  3483.  
  3484.  
  3485.  
  3486.  
  3487.  
  3488.  
  3489. extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream);
  3490. # 825 "/usr/include/wchar.h" 3 4
  3491. extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream);
  3492. extern wint_t putwchar_unlocked (wchar_t __wc);
  3493. # 835 "/usr/include/wchar.h" 3 4
  3494. extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n,
  3495.      __FILE *__restrict __stream);
  3496.  
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.  
  3503. extern int fputws_unlocked (__const wchar_t *__restrict __ws,
  3504.        __FILE *__restrict __stream);
  3505.  
  3506.  
  3507.  
  3508.  
  3509.  
  3510.  
  3511.  
  3512. extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
  3513.    __const wchar_t *__restrict __format,
  3514.    __const struct tm *__restrict __tp) throw ();
  3515.  
  3516.  
  3517.  
  3518.  
  3519.  
  3520.  
  3521.  
  3522. extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
  3523.      __const wchar_t *__restrict __format,
  3524.      __const struct tm *__restrict __tp,
  3525.      __locale_t __loc) throw ();
  3526. # 889 "/usr/include/wchar.h" 3 4
  3527. }
  3528. # 6 "src/burner/libretro/tchar/tchar.h" 2
  3529.  
  3530. # 1 "src/intf/input/inp_keys.h" 1
  3531. # 8 "src/burner/libretro/tchar/tchar.h" 2
  3532.  
  3533.  
  3534.  
  3535.  
  3536.  
  3537. typedef struct { int x, y, width, height; } RECT;
  3538. # 59 "src/burner/libretro/tchar/tchar.h"
  3539. extern char szAppBurnVer[16];
  3540.  
  3541. typedef int HWND;
  3542.  
  3543. extern int bDrvOkay;
  3544. extern int bRunPause;
  3545. extern bool bAlwaysProcessKeyboardInput;
  3546. extern HWND hScrnWnd;
  3547.  
  3548. extern void InpDIPSWResetDIPs (void);
  3549. # 14 "src/burn/burnint.h" 2
  3550.  
  3551.  
  3552.  
  3553. # 1 "src/burner/libretro/burn_libretro_opts.h" 1
  3554. # 18 "src/burn/burnint.h" 2
  3555.  
  3556.  
  3557. # 1 "src/burn/burn.h" 1
  3558.  
  3559.  
  3560.  
  3561.  
  3562.  
  3563.  
  3564.  extern "C" {
  3565. # 18 "src/burn/burn.h"
  3566. # 1 "/usr/include/time.h" 1 3 4
  3567. # 30 "/usr/include/time.h" 3 4
  3568. extern "C" {
  3569.  
  3570.  
  3571.  
  3572.  
  3573.  
  3574.  
  3575.  
  3576. # 1 "/usr/lib/gcc/arm-linux-gnueabihf/4.6/include/stddef.h" 1 3 4
  3577. # 39 "/usr/include/time.h" 2 3 4
  3578.  
  3579.  
  3580.  
  3581. # 1 "/usr/include/arm-linux-gnueabihf/bits/time.h" 1 3 4
  3582. # 43 "/usr/include/time.h" 2 3 4
  3583. # 131 "/usr/include/time.h" 3 4
  3584.  
  3585.  
  3586. struct tm
  3587. {
  3588.   int tm_sec;
  3589.   int tm_min;
  3590.   int tm_hour;
  3591.   int tm_mday;
  3592.   int tm_mon;
  3593.   int tm_year;
  3594.   int tm_wday;
  3595.   int tm_yday;
  3596.   int tm_isdst;
  3597.  
  3598.  
  3599.   long int tm_gmtoff;
  3600.   __const char *tm_zone;
  3601.  
  3602.  
  3603.  
  3604.  
  3605. };
  3606.  
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612.  
  3613.  
  3614. struct itimerspec
  3615.   {
  3616.     struct timespec it_interval;
  3617.     struct timespec it_value;
  3618.   };
  3619.  
  3620.  
  3621. struct sigevent;
  3622. # 180 "/usr/include/time.h" 3 4
  3623.  
  3624.  
  3625.  
  3626. extern clock_t clock (void) throw ();
  3627.  
  3628.  
  3629. extern time_t time (time_t *__timer) throw ();
  3630.  
  3631.  
  3632. extern double difftime (time_t __time1, time_t __time0)
  3633.      throw () __attribute__ ((__const__));
  3634.  
  3635.  
  3636. extern time_t mktime (struct tm *__tp) throw ();
  3637.  
  3638.  
  3639.  
  3640.  
  3641.  
  3642. extern size_t strftime (char *__restrict __s, size_t __maxsize,
  3643.    __const char *__restrict __format,
  3644.    __const struct tm *__restrict __tp) throw ();
  3645.  
  3646.  
  3647.  
  3648.  
  3649.  
  3650. extern char *strptime (__const char *__restrict __s,
  3651.          __const char *__restrict __fmt, struct tm *__tp)
  3652.      throw ();
  3653.  
  3654.  
  3655.  
  3656.  
  3657.  
  3658.  
  3659.  
  3660. extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
  3661.      __const char *__restrict __format,
  3662.      __const struct tm *__restrict __tp,
  3663.      __locale_t __loc) throw ();
  3664.  
  3665.  
  3666.  
  3667. extern char *strptime_l (__const char *__restrict __s,
  3668.     __const char *__restrict __fmt, struct tm *__tp,
  3669.     __locale_t __loc) throw ();
  3670.  
  3671.  
  3672.  
  3673.  
  3674.  
  3675.  
  3676. extern struct tm *gmtime (__const time_t *__timer) throw ();
  3677.  
  3678.  
  3679.  
  3680. extern struct tm *localtime (__const time_t *__timer) throw ();
  3681.  
  3682.  
  3683.  
  3684.  
  3685.  
  3686. extern struct tm *gmtime_r (__const time_t *__restrict __timer,
  3687.        struct tm *__restrict __tp) throw ();
  3688.  
  3689.  
  3690.  
  3691. extern struct tm *localtime_r (__const time_t *__restrict __timer,
  3692.           struct tm *__restrict __tp) throw ();
  3693.  
  3694.  
  3695.  
  3696.  
  3697.  
  3698. extern char *asctime (__const struct tm *__tp) throw ();
  3699.  
  3700.  
  3701. extern char *ctime (__const time_t *__timer) throw ();
  3702.  
  3703.  
  3704.  
  3705.  
  3706.  
  3707.  
  3708.  
  3709. extern char *asctime_r (__const struct tm *__restrict __tp,
  3710.    char *__restrict __buf) throw ();
  3711.  
  3712.  
  3713. extern char *ctime_r (__const time_t *__restrict __timer,
  3714.         char *__restrict __buf) throw ();
  3715.  
  3716.  
  3717.  
  3718.  
  3719. extern char *__tzname[2];
  3720. extern int __daylight;
  3721. extern long int __timezone;
  3722.  
  3723.  
  3724.  
  3725.  
  3726. extern char *tzname[2];
  3727.  
  3728.  
  3729.  
  3730. extern void tzset (void) throw ();
  3731.  
  3732.  
  3733.  
  3734. extern int daylight;
  3735. extern long int timezone;
  3736.  
  3737.  
  3738.  
  3739.  
  3740.  
  3741. extern int stime (__const time_t *__when) throw ();
  3742. # 313 "/usr/include/time.h" 3 4
  3743. extern time_t timegm (struct tm *__tp) throw ();
  3744.  
  3745.  
  3746. extern time_t timelocal (struct tm *__tp) throw ();
  3747.  
  3748.  
  3749. extern int dysize (int __year) throw () __attribute__ ((__const__));
  3750. # 328 "/usr/include/time.h" 3 4
  3751. extern int nanosleep (__const struct timespec *__requested_time,
  3752.         struct timespec *__remaining);
  3753.  
  3754.  
  3755.  
  3756. extern int clock_getres (clockid_t __clock_id, struct timespec *__res) throw ();
  3757.  
  3758.  
  3759. extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) throw ();
  3760.  
  3761.  
  3762. extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
  3763.      throw ();
  3764.  
  3765.  
  3766.  
  3767.  
  3768.  
  3769.  
  3770. extern int clock_nanosleep (clockid_t __clock_id, int __flags,
  3771.        __const struct timespec *__req,
  3772.        struct timespec *__rem);
  3773.  
  3774.  
  3775. extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) throw ();
  3776.  
  3777.  
  3778.  
  3779.  
  3780. extern int timer_create (clockid_t __clock_id,
  3781.     struct sigevent *__restrict __evp,
  3782.     timer_t *__restrict __timerid) throw ();
  3783.  
  3784.  
  3785. extern int timer_delete (timer_t __timerid) throw ();
  3786.  
  3787.  
  3788. extern int timer_settime (timer_t __timerid, int __flags,
  3789.      __const struct itimerspec *__restrict __value,
  3790.      struct itimerspec *__restrict __ovalue) throw ();
  3791.  
  3792.  
  3793. extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
  3794.      throw ();
  3795.  
  3796.  
  3797. extern int timer_getoverrun (timer_t __timerid) throw ();
  3798. # 390 "/usr/include/time.h" 3 4
  3799. extern int getdate_err;
  3800. # 399 "/usr/include/time.h" 3 4
  3801. extern struct tm *getdate (__const char *__string);
  3802. # 413 "/usr/include/time.h" 3 4
  3803. extern int getdate_r (__const char *__restrict __string,
  3804.         struct tm *__restrict __resbufp);
  3805.  
  3806.  
  3807. }
  3808. # 19 "src/burn/burn.h" 2
  3809.  
  3810. extern char szAppHiscorePath[260];
  3811. extern char szAppSamplesPath[260];
  3812. # 62 "src/burn/burn.h"
  3813. typedef unsigned char UINT8;
  3814. typedef signed char INT8;
  3815. typedef unsigned short UINT16;
  3816. typedef signed short INT16;
  3817. typedef unsigned int UINT32;
  3818. typedef signed int INT32;
  3819.  
  3820.  
  3821.  
  3822.  
  3823. __extension__ typedef unsigned long long UINT64;
  3824. __extension__ typedef long long INT64;
  3825.  
  3826.  
  3827. # 1 "src/burn/state.h" 1
  3828.  
  3829.  
  3830.  
  3831.  extern "C" {
  3832. # 14 "src/burn/state.h"
  3833. INT32 BurnAreaScan(INT32 nAction, INT32* pnMin);
  3834. # 34 "src/burn/state.h"
  3835. struct BurnArea { void *Data; UINT32 nLen; INT32 nAddress; char *szName; };
  3836.  
  3837.  
  3838. extern INT32 ( *BurnAcb) (struct BurnArea* pba);
  3839.  
  3840.  
  3841. inline static void ScanVar(void* pv, INT32 nSize, char* szName)
  3842. {
  3843.  struct BurnArea ba;
  3844.  memset(&ba, 0, sizeof(ba));
  3845.  ba.Data = pv;
  3846.  ba.nLen = nSize;
  3847.  ba.szName = szName;
  3848.  BurnAcb(&ba);
  3849. }
  3850. # 71 "src/burn/state.h"
  3851.  }
  3852. # 77 "src/burn/burn.h" 2
  3853. # 1 "src/burn/cheat.h" 1
  3854.  
  3855.  
  3856.  
  3857.  
  3858. extern bool bCheatsAllowed;
  3859.  
  3860. struct CheatAddressInfo {
  3861.  INT32 nCPU;
  3862.  INT32 nAddress;
  3863.  UINT32 nValue;
  3864.  UINT32 nOriginalValue;
  3865. };
  3866.  
  3867. struct CheatOption {
  3868.  char szOptionName[(128)];
  3869.  struct CheatAddressInfo AddressInfo[(512) + 1];
  3870. };
  3871.  
  3872. struct CheatInfo {
  3873.  struct CheatInfo* pNext;
  3874.  struct CheatInfo* pPrevious;
  3875.  INT32 nType;
  3876.  INT32 nStatus;
  3877.  INT32 nCurrent;
  3878.  INT32 nDefault;
  3879.  char szCheatName[(128)];
  3880.  struct CheatOption* pOption[(512)];
  3881. };
  3882.  
  3883. extern CheatInfo* pCheatInfo;
  3884.  
  3885. INT32 CheatUpdate();
  3886. INT32 CheatEnable(INT32 nCheat, INT32 nOption);
  3887. INT32 CheatApply();
  3888. INT32 CheatInit();
  3889. void CheatExit();
  3890.  
  3891.  
  3892. extern UINT32 CheatSearchShowResultAddresses[3];
  3893. extern UINT32 CheatSearchShowResultValues[3];
  3894.  
  3895. INT32 CheatSearchInit();
  3896. void CheatSearchExit();
  3897. void CheatSearchStart();
  3898. UINT32 CheatSearchValueNoChange();
  3899. UINT32 CheatSearchValueChange();
  3900. UINT32 CheatSearchValueDecreased();
  3901. UINT32 CheatSearchValueIncreased();
  3902. void CheatSearchDumptoFile();
  3903.  
  3904. typedef void (*CheatSearchInitCallback)();
  3905. extern CheatSearchInitCallback CheatSearchInitCallbackFunction;
  3906. void CheatSearchExcludeAddressRange(UINT32 nStart, UINT32 nEnd);
  3907. # 78 "src/burn/burn.h" 2
  3908. # 1 "src/burn/hiscore.h" 1
  3909. extern INT32 EnableHiscores;
  3910.  
  3911. void HiscoreInit();
  3912. void HiscoreReset();
  3913. void HiscoreApply();
  3914. void HiscoreExit();
  3915. # 79 "src/burn/burn.h" 2
  3916.  
  3917. extern INT32 nBurnVer;
  3918.  
  3919. enum BurnCartrigeCommand { CART_INIT_START, CART_INIT_END, CART_EXIT };
  3920.  
  3921.  
  3922.  
  3923.  
  3924.  
  3925. extern INT32 ( *BurnExtLoadRom)(UINT8* Dest, INT32* pnWrote, INT32 i);
  3926.  
  3927.  
  3928. extern INT32 ( *BurnExtProgressRangeCallback)(double dProgressRange);
  3929. extern INT32 ( *BurnExtProgressUpdateCallback)(double dProgress, const char* pszText, bool bAbs);
  3930.  
  3931.  
  3932. extern INT32 ( *BurnExtCartridgeSetupCallback)(BurnCartrigeCommand nCommand);
  3933.  
  3934.  
  3935. extern UINT32 ( *BurnHighCol) (INT32 r, INT32 g, INT32 b, INT32 i);
  3936.  
  3937.  
  3938.  
  3939. extern UINT32 nCurrentFrame;
  3940.  
  3941. inline static INT32 GetCurrentFrame() {
  3942.  return nCurrentFrame;
  3943. }
  3944.  
  3945. inline static void SetCurrentFrame(const UINT32 n) {
  3946.  nCurrentFrame = n;
  3947. }
  3948. # 127 "src/burn/burn.h"
  3949. struct BurnRomInfo {
  3950.  char szName[100];
  3951.  UINT32 nLen;
  3952.  UINT32 nCrc;
  3953.  UINT32 nType;
  3954. };
  3955.  
  3956. struct BurnSampleInfo {
  3957.  char szName[100];
  3958.  UINT32 nFlags;
  3959. };
  3960. # 151 "src/burn/burn.h"
  3961. struct BurnInputInfo {
  3962.  char* szName;
  3963.  UINT8 nType;
  3964.  union {
  3965.   UINT8* pVal;
  3966.   UINT16* pShortVal;
  3967.  };
  3968.  char* szInfo;
  3969. };
  3970.  
  3971.  
  3972.  
  3973. struct BurnDIPInfo {
  3974.  INT32 nInput;
  3975.  UINT8 nFlags;
  3976.  UINT8 nMask;
  3977.  UINT8 nSetting;
  3978.  char* szText;
  3979. };
  3980.  
  3981.  
  3982.  
  3983. extern bool bBurnUseMMX;
  3984. extern bool bBurnUseASMCPUEmulation;
  3985.  
  3986. extern UINT32 nFramesEmulated;
  3987. extern UINT32 nFramesRendered;
  3988. extern clock_t starttime;
  3989.  
  3990. extern bool bForce60Hz;
  3991.  
  3992. extern INT32 nBurnFPS;
  3993. extern INT32 nBurnCPUSpeedAdjust;
  3994.  
  3995. extern UINT32 nBurnDrvCount;
  3996. extern UINT32 nBurnDrvActive;
  3997. extern UINT32 nBurnDrvSelect[8];
  3998.  
  3999. extern INT32 nMaxPlayers;
  4000.  
  4001. extern UINT8 *pBurnDraw;
  4002. extern INT32 nBurnPitch;
  4003. extern INT32 nBurnBpp;
  4004.  
  4005. extern UINT8 nBurnLayer;
  4006. extern UINT8 nSpriteEnable;
  4007.  
  4008. extern INT32 nBurnSoundRate;
  4009. extern INT32 nBurnSoundLen;
  4010. extern INT16* pBurnSoundOut;
  4011.  
  4012. extern INT32 nInterpolation;
  4013. extern INT32 nFMInterpolation;
  4014.  
  4015. extern UINT32 *pBurnDrvPalette;
  4016.  
  4017.  
  4018.  
  4019.  
  4020.  
  4021.  
  4022. extern INT32 ( *bprintf) (INT32 nStatus, char* szFormat, ...);
  4023.  
  4024. INT32 BurnLibInit();
  4025. INT32 BurnLibExit();
  4026.  
  4027. INT32 BurnDrvInit();
  4028. INT32 BurnDrvExit();
  4029.  
  4030. INT32 BurnDrvCartridgeSetup(BurnCartrigeCommand nCommand);
  4031.  
  4032. INT32 BurnDrvFrame();
  4033. INT32 BurnDrvRedraw();
  4034. INT32 BurnRecalcPal();
  4035. INT32 BurnDrvGetPaletteEntries();
  4036.  
  4037. INT32 BurnSetProgressRange(double dProgressRange);
  4038. INT32 BurnUpdateProgress(double dProgressStep, const char* pszText, bool bAbs);
  4039.  
  4040. void BurnLocalisationSetName(char *szName, char *szLongName);
  4041. # 250 "src/burn/burn.h"
  4042. char* BurnDrvGetText(UINT32 i);
  4043. char* BurnDrvGetTextA(UINT32 i);
  4044.  
  4045. INT32 BurnDrvGetZipName(char** pszName, UINT32 i);
  4046. INT32 BurnDrvGetRomInfo(struct BurnRomInfo *pri, UINT32 i);
  4047. INT32 BurnDrvGetRomName(char** pszName, UINT32 i, INT32 nAka);
  4048. INT32 BurnDrvGetInputInfo(struct BurnInputInfo* pii, UINT32 i);
  4049. INT32 BurnDrvGetDIPInfo(struct BurnDIPInfo* pdi, UINT32 i);
  4050. INT32 BurnDrvGetVisibleSize(INT32* pnWidth, INT32* pnHeight);
  4051. INT32 BurnDrvGetVisibleOffs(INT32* pnLeft, INT32* pnTop);
  4052. INT32 BurnDrvGetFullSize(INT32* pnWidth, INT32* pnHeight);
  4053. INT32 BurnDrvGetAspect(INT32* pnXAspect, INT32* pnYAspect);
  4054. INT32 BurnDrvGetHardwareCode();
  4055. INT32 BurnDrvGetFlags();
  4056. bool BurnDrvIsWorking();
  4057. INT32 BurnDrvGetMaxPlayers();
  4058. INT32 BurnDrvSetVisibleSize(INT32 pnWidth, INT32 pnHeight);
  4059. INT32 BurnDrvSetAspect(INT32 pnXAspect, INT32 pnYAspect);
  4060. INT32 BurnDrvGetGenreFlags();
  4061. INT32 BurnDrvGetFamilyFlags();
  4062. INT32 BurnDrvGetSampleInfo(struct BurnSampleInfo *pri, UINT32 i);
  4063. INT32 BurnDrvGetSampleName(char** pszName, UINT32 i, INT32 nAka);
  4064.  
  4065. void Reinitialise();
  4066.  
  4067. extern bool bDoIpsPatch;
  4068. void IpsApplyPatches(UINT8* base, char* rom_name);
  4069. # 529 "src/burn/burn.h"
  4070.  }
  4071. # 21 "src/burn/burnint.h" 2
  4072.  
  4073.  
  4074. typedef union
  4075. {
  4076.  struct { UINT8 l,h,h2,h3; } b;
  4077.  struct { UINT16 l,h; } w;
  4078.  UINT32 d;
  4079. } PAIR;
  4080. # 42 "src/burn/burnint.h"
  4081. struct BurnDriver {
  4082.  char* szShortName;
  4083.  char* szParent;
  4084.  char* szBoardROM;
  4085.  char* szSampleName;
  4086.  char* szDate;
  4087.  
  4088.  
  4089.  
  4090.  char* szFullNameA; char* szCommentA; char* szManufacturerA; char* szSystemA;
  4091.  wchar_t* szFullNameW; wchar_t* szCommentW; wchar_t* szManufacturerW; wchar_t* szSystemW;
  4092.  
  4093.  INT32 Flags;
  4094.  INT32 Players;
  4095.  INT32 Hardware;
  4096.  INT32 Genre;
  4097.  INT32 Family;
  4098.  INT32 (*GetZipName)(char** pszName, UINT32 i);
  4099.  INT32 (*GetRomInfo)(struct BurnRomInfo* pri, UINT32 i);
  4100.  INT32 (*GetRomName)(char** pszName, UINT32 i, INT32 nAka);
  4101.  INT32 (*GetSampleInfo)(struct BurnSampleInfo* pri, UINT32 i);
  4102.  INT32 (*GetSampleName)(char** pszName, UINT32 i, INT32 nAka);
  4103.  INT32 (*GetInputInfo)(struct BurnInputInfo* pii, UINT32 i);
  4104.  INT32 (*GetDIPInfo)(struct BurnDIPInfo* pdi, UINT32 i);
  4105.  INT32 (*Init)(); INT32 (*Exit)(); INT32 (*Frame)(); INT32 (*Redraw)(); INT32 (*AreaScan)(INT32 nAction, INT32* pnMin);
  4106.  UINT8* pRecalcPal; UINT32 nPaletteEntries;
  4107.  INT32 nWidth, nHeight; INT32 nXAspect, nYAspect;
  4108. };
  4109.  
  4110.  
  4111.  
  4112.  
  4113.  
  4114. # 1 "src/burn/stdfunc.h" 1
  4115. # 76 "src/burn/burnint.h" 2
  4116.  
  4117.  
  4118.  
  4119.  
  4120. INT32 BurnSetRefreshRate(double dRefreshRate);
  4121. INT32 BurnByteswap(UINT8* pm,INT32 nLen);
  4122. INT32 BurnClearScreen();
  4123.  
  4124.  
  4125. INT32 BurnLoadRom(UINT8* Dest, INT32 i, INT32 nGap);
  4126. INT32 BurnXorRom(UINT8* Dest, INT32 i, INT32 nGap);
  4127. INT32 BurnLoadBitField(UINT8* pDest, UINT8* pSrc, INT32 nField, INT32 nSrcLen);
  4128.  
  4129.  
  4130.  
  4131.  
  4132. extern UINT16* pTransDraw;
  4133.  
  4134. void BurnTransferClear();
  4135. INT32 BurnTransferCopy(UINT32* pPalette);
  4136. void BurnTransferExit();
  4137. INT32 BurnTransferInit();
  4138.  
  4139.  
  4140.  
  4141.  
  4142.  
  4143. inline static void PutPix(UINT8* pPix, UINT32 c)
  4144. {
  4145.  *((UINT16*)pPix) = (UINT16)c;
  4146. }
  4147. # 127 "src/burn/burnint.h"
  4148. struct cpu_core_config {
  4149.  void (*open)(INT32);
  4150.  void (*close)();
  4151.  
  4152.  UINT8 (*read)(UINT32);
  4153.  void (*write)(UINT32, UINT8);
  4154.  INT32 (*active)();
  4155.  INT32 (*totalcycles)();
  4156.  void (*newframe)();
  4157.  
  4158.  INT32 (*run)(INT32);
  4159.  void (*runend)();
  4160.  void (*reset)();
  4161.  
  4162.  UINT64 nMemorySize;
  4163.  UINT32 nAddressXor;
  4164. };
  4165.  
  4166. void CpuCheatRegister(INT32 type, cpu_core_config *config);
  4167.  
  4168.  
  4169. void BurnInitMemoryManager();
  4170. UINT8 *BurnMalloc(INT32 size);
  4171. void _BurnFree(void *ptr);
  4172.  
  4173. void BurnExitMemoryManager();
  4174. # 161 "src/burn/burnint.h"
  4175. extern UINT8 Debug_BurnTransferInitted;
  4176. extern UINT8 Debug_BurnGunInitted;
  4177. extern UINT8 Debug_BurnLedInitted;
  4178. extern UINT8 Debug_HiscoreInitted;
  4179. extern UINT8 Debug_GenericTilesInitted;
  4180.  
  4181. extern UINT8 DebugDev_8255PPIInitted;
  4182. extern UINT8 DebugDev_EEPROMInitted;
  4183. extern UINT8 DebugDev_PandoraInitted;
  4184. extern UINT8 DebugDev_SeibuSndInitted;
  4185. extern UINT8 DebugDev_TimeKprInitted;
  4186.  
  4187. extern UINT8 DebugSnd_AY8910Initted;
  4188. extern UINT8 DebugSnd_Y8950Initted;
  4189. extern UINT8 DebugSnd_YM2151Initted;
  4190. extern UINT8 DebugSnd_YM2203Initted;
  4191. extern UINT8 DebugSnd_YM2413Initted;
  4192. extern UINT8 DebugSnd_YM2608Initted;
  4193. extern UINT8 DebugSnd_YM2610Initted;
  4194. extern UINT8 DebugSnd_YM2612Initted;
  4195. extern UINT8 DebugSnd_YM3526Initted;
  4196. extern UINT8 DebugSnd_YM3812Initted;
  4197. extern UINT8 DebugSnd_YMF278BInitted;
  4198. extern UINT8 DebugSnd_DACInitted;
  4199. extern UINT8 DebugSnd_ES5506Initted;
  4200. extern UINT8 DebugSnd_ES8712Initted;
  4201. extern UINT8 DebugSnd_ICS2115Initted;
  4202. extern UINT8 DebugSnd_IremGA20Initted;
  4203. extern UINT8 DebugSnd_K007232Initted;
  4204. extern UINT8 DebugSnd_K051649Initted;
  4205. extern UINT8 DebugSnd_K053260Initted;
  4206. extern UINT8 DebugSnd_K054539Initted;
  4207. extern UINT8 DebugSnd_MSM5205Initted;
  4208. extern UINT8 DebugSnd_MSM6295Initted;
  4209. extern UINT8 DebugSnd_NamcoSndInitted;
  4210. extern UINT8 DebugSnd_RF5C68Initted;
  4211. extern UINT8 DebugSnd_SAA1099Initted;
  4212. extern UINT8 DebugSnd_SamplesInitted;
  4213. extern UINT8 DebugSnd_SegaPCMInitted;
  4214. extern UINT8 DebugSnd_SN76496Initted;
  4215. extern UINT8 DebugSnd_UPD7759Initted;
  4216. extern UINT8 DebugSnd_X1010Initted;
  4217. extern UINT8 DebugSnd_YMZ280BInitted;
  4218.  
  4219. extern UINT8 DebugCPU_ARM7Initted;
  4220. extern UINT8 DebugCPU_ARMInitted;
  4221. extern UINT8 DebugCPU_H6280Initted;
  4222. extern UINT8 DebugCPU_HD6309Initted;
  4223. extern UINT8 DebugCPU_KonamiInitted;
  4224. extern UINT8 DebugCPU_M6502Initted;
  4225. extern UINT8 DebugCPU_M6800Initted;
  4226. extern UINT8 DebugCPU_M6805Initted;
  4227. extern UINT8 DebugCPU_M6809Initted;
  4228. extern UINT8 DebugCPU_S2650Initted;
  4229. extern UINT8 DebugCPU_SekInitted;
  4230. extern UINT8 DebugCPU_VezInitted;
  4231. extern UINT8 DebugCPU_ZetInitted;
  4232.  
  4233. extern UINT8 DebugCPU_I8039Initted;
  4234. extern UINT8 DebugCPU_SH2Initted;
  4235.  
  4236. void DebugTrackerExit();
  4237. # 2 "src/burn/tiles_generic.h" 2
  4238.  
  4239. extern UINT8* pTileData;
  4240. extern INT32 nScreenWidth, nScreenHeight;
  4241.  
  4242. INT32 GenericTilesInit();
  4243. INT32 GenericTilesExit();
  4244. # 19 "src/burn/tiles_generic.h"
  4245. void GfxDecode(INT32 num, INT32 numPlanes, INT32 xSize, INT32 ySize, INT32 planeoffsets[], INT32 xoffsets[], INT32 yoffsets[], INT32 modulo, UINT8 *pSrc, UINT8 *pDest);
  4246. void GfxDecodeSingle(INT32 which, INT32 numPlanes, INT32 xSize, INT32 ySize, INT32 planeoffsets[], INT32 xoffsets[], INT32 yoffsets[], INT32 modulo, UINT8 *pSrc, UINT8 *pDest);
  4247.  
  4248. void RenderZoomedTile(UINT16 *pDestDraw, UINT8 *gfx, INT32 code, INT32 color, INT32 trans_color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy, INT32 width, INT32 height, INT32 zoomx, INT32 zoomy);
  4249.  
  4250. void RenderTileTranstab(UINT16 *dest, UINT8 *gfx, INT32 code, INT32 color, INT32 trans_col, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy, INT32 width, INT32 height, UINT8 *tab);
  4251.  
  4252. void Render8x8Tile(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4253. void Render8x8Tile_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4254. void Render8x8Tile_FlipX(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4255. void Render8x8Tile_FlipX_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4256. void Render8x8Tile_FlipY(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4257. void Render8x8Tile_FlipY_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4258. void Render8x8Tile_FlipXY(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4259. void Render8x8Tile_FlipXY_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4260.  
  4261. void Render8x8Tile_Mask(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4262. void Render8x8Tile_Mask_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4263. void Render8x8Tile_Mask_FlipX(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4264. void Render8x8Tile_Mask_FlipX_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4265. void Render8x8Tile_Mask_FlipY(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4266. void Render8x8Tile_Mask_FlipY_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4267. void Render8x8Tile_Mask_FlipXY(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4268. void Render8x8Tile_Mask_FlipXY_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4269.  
  4270. void Render16x16Tile(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4271. void Render16x16Tile_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4272. void Render16x16Tile_FlipX(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4273. void Render16x16Tile_FlipX_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4274. void Render16x16Tile_FlipY(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4275. void Render16x16Tile_FlipY_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4276. void Render16x16Tile_FlipXY(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4277. void Render16x16Tile_FlipXY_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4278.  
  4279. void Render16x16Tile_Mask(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4280. void Render16x16Tile_Mask_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4281. void Render16x16Tile_Mask_FlipX(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4282. void Render16x16Tile_Mask_FlipX_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4283. void Render16x16Tile_Mask_FlipY(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4284. void Render16x16Tile_Mask_FlipY_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4285. void Render16x16Tile_Mask_FlipXY(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4286. void Render16x16Tile_Mask_FlipXY_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4287.  
  4288. void Render32x32Tile(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4289. void Render32x32Tile_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4290. void Render32x32Tile_FlipX(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4291. void Render32x32Tile_FlipX_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4292. void Render32x32Tile_FlipY(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4293. void Render32x32Tile_FlipY_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4294. void Render32x32Tile_FlipXY(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4295. void Render32x32Tile_FlipXY_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4296.  
  4297. void Render32x32Tile_Mask(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4298. void Render32x32Tile_Mask_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4299. void Render32x32Tile_Mask_FlipX(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4300. void Render32x32Tile_Mask_FlipX_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4301. void Render32x32Tile_Mask_FlipY(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4302. void Render32x32Tile_Mask_FlipY_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4303. void Render32x32Tile_Mask_FlipXY(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4304. void Render32x32Tile_Mask_FlipXY_Clip(UINT16* pDestDraw, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4305.  
  4306. void RenderCustomTile(UINT16* pDestDraw, INT32 nWidth, INT32 nHeight, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4307. void RenderCustomTile_Clip(UINT16* pDestDraw, INT32 nWidth, INT32 nHeight, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4308. void RenderCustomTile_FlipX(UINT16* pDestDraw, INT32 nWidth, INT32 nHeight, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4309. void RenderCustomTile_FlipX_Clip(UINT16* pDestDraw, INT32 nWidth, INT32 nHeight, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4310. void RenderCustomTile_FlipY(UINT16* pDestDraw, INT32 nWidth, INT32 nHeight, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4311. void RenderCustomTile_FlipY_Clip(UINT16* pDestDraw, INT32 nWidth, INT32 nHeight, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4312. void RenderCustomTile_FlipXY(UINT16* pDestDraw, INT32 nWidth, INT32 nHeight, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4313. void RenderCustomTile_FlipXY_Clip(UINT16* pDestDraw, INT32 nWidth, INT32 nHeight, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nPaletteOffset, UINT8 *pTile);
  4314.  
  4315. void RenderCustomTile_Mask(UINT16* pDestDraw, INT32 nWidth, INT32 nHeight, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4316. void RenderCustomTile_Mask_Clip(UINT16* pDestDraw, INT32 nWidth, INT32 nHeight, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4317. void RenderCustomTile_Mask_FlipX(UINT16* pDestDraw, INT32 nWidth, INT32 nHeight, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4318. void RenderCustomTile_Mask_FlipX_Clip(UINT16* pDestDraw, INT32 nWidth, INT32 nHeight, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4319. void RenderCustomTile_Mask_FlipY(UINT16* pDestDraw, INT32 nWidth, INT32 nHeight, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4320. void RenderCustomTile_Mask_FlipY_Clip(UINT16* pDestDraw, INT32 nWidth, INT32 nHeight, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4321. void RenderCustomTile_Mask_FlipXY(UINT16* pDestDraw, INT32 nWidth, INT32 nHeight, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4322. void RenderCustomTile_Mask_FlipXY_Clip(UINT16* pDestDraw, INT32 nWidth, INT32 nHeight, INT32 nTileNumber, INT32 StartX, INT32 StartY, INT32 nTilePalette, INT32 nColourDepth, INT32 nMaskColour, INT32 nPaletteOffset, UINT8 *pTile);
  4323. # 5 "src/burn/drv/dataeast/d_cninja.cpp" 2
  4324. # 1 "src/cpu/sek.h" 1
  4325. # 17 "src/cpu/sek.h"
  4326. # 1 "src/cpu/m68k/m68k.h" 1
  4327.  
  4328.  
  4329.  
  4330.  
  4331.  extern "C" {
  4332. # 66 "src/cpu/m68k/m68k.h"
  4333. enum
  4334. {
  4335.  M68K_CPU_TYPE_INVALID,
  4336.  M68K_CPU_TYPE_68000,
  4337.  M68K_CPU_TYPE_68008,
  4338.  M68K_CPU_TYPE_68010,
  4339.  M68K_CPU_TYPE_68EC020,
  4340.  M68K_CPU_TYPE_68020,
  4341.  M68K_CPU_TYPE_68030,
  4342.  M68K_CPU_TYPE_68040
  4343. };
  4344.  
  4345.  
  4346. typedef enum
  4347. {
  4348.  
  4349.  M68K_REG_D0,
  4350.  M68K_REG_D1,
  4351.  M68K_REG_D2,
  4352.  M68K_REG_D3,
  4353.  M68K_REG_D4,
  4354.  M68K_REG_D5,
  4355.  M68K_REG_D6,
  4356.  M68K_REG_D7,
  4357.  M68K_REG_A0,
  4358.  M68K_REG_A1,
  4359.  M68K_REG_A2,
  4360.  M68K_REG_A3,
  4361.  M68K_REG_A4,
  4362.  M68K_REG_A5,
  4363.  M68K_REG_A6,
  4364.  M68K_REG_A7,
  4365.  M68K_REG_PC,
  4366.  M68K_REG_SR,
  4367.  M68K_REG_SP,
  4368.  M68K_REG_USP,
  4369.  M68K_REG_ISP,
  4370.  M68K_REG_MSP,
  4371.  M68K_REG_SFC,
  4372.  M68K_REG_DFC,
  4373.  M68K_REG_VBR,
  4374.  M68K_REG_CACR,
  4375.  M68K_REG_CAAR,
  4376.  
  4377.  
  4378.  
  4379.  
  4380.  
  4381.  M68K_REG_PREF_ADDR,
  4382.  M68K_REG_PREF_DATA,
  4383.  
  4384.  
  4385.  M68K_REG_PPC,
  4386.  M68K_REG_IR,
  4387.  M68K_REG_CPU_TYPE
  4388. } m68k_register_t;
  4389. # 148 "src/cpu/m68k/m68k.h"
  4390. unsigned int m68k_read_memory_8(unsigned int address);
  4391. unsigned int m68k_read_memory_16(unsigned int address);
  4392. unsigned int m68k_read_memory_32(unsigned int address);
  4393.  
  4394.  
  4395. unsigned int m68k_read_immediate_16(unsigned int address);
  4396. unsigned int m68k_read_immediate_32(unsigned int address);
  4397.  
  4398.  
  4399. unsigned int m68k_read_pcrelative_8(unsigned int address);
  4400. unsigned int m68k_read_pcrelative_16(unsigned int address);
  4401. unsigned int m68k_read_pcrelative_32(unsigned int address);
  4402.  
  4403.  
  4404. unsigned int m68k_read_disassembler_8 (unsigned int address);
  4405. unsigned int m68k_read_disassembler_16 (unsigned int address);
  4406. unsigned int m68k_read_disassembler_32 (unsigned int address);
  4407.  
  4408.  
  4409. void m68k_write_memory_8(unsigned int address, unsigned int value);
  4410. void m68k_write_memory_16(unsigned int address, unsigned int value);
  4411. void m68k_write_memory_32(unsigned int address, unsigned int value);
  4412. # 178 "src/cpu/m68k/m68k.h"
  4413. void m68k_write_memory_32_pd(unsigned int address, unsigned int value);
  4414. # 204 "src/cpu/m68k/m68k.h"
  4415. void m68k_set_int_ack_callback(int (*callback)(int int_level));
  4416. # 213 "src/cpu/m68k/m68k.h"
  4417. void m68k_set_bkpt_ack_callback(void (*callback)(unsigned int data));
  4418.  
  4419.  
  4420.  
  4421.  
  4422.  
  4423.  
  4424.  
  4425. void m68k_set_reset_instr_callback(void (*callback)(void));
  4426.  
  4427.  
  4428.  
  4429.  
  4430.  
  4431.  
  4432.  
  4433. void m68k_set_cmpild_instr_callback(void (*callback)(unsigned int val, int reg));
  4434.  
  4435.  
  4436.  
  4437.  
  4438.  
  4439.  
  4440.  
  4441. void m68k_set_rte_instr_callback(void (*callback)(void));
  4442. # 246 "src/cpu/m68k/m68k.h"
  4443. void m68k_set_pc_changed_callback(void (*callback)(unsigned int new_pc));
  4444. # 256 "src/cpu/m68k/m68k.h"
  4445. void m68k_set_fc_callback(void (*callback)(unsigned int new_fc));
  4446. # 265 "src/cpu/m68k/m68k.h"
  4447. void m68k_set_instr_hook_callback(void (*callback)(void));
  4448. # 277 "src/cpu/m68k/m68k.h"
  4449. void m68k_set_cpu_type(unsigned int cpu_type);
  4450.  
  4451.  
  4452.  
  4453.  
  4454. void m68k_init(void);
  4455.  
  4456.  
  4457.  
  4458.  
  4459.  
  4460.  
  4461.  
  4462. void m68k_pulse_reset(void);
  4463.  
  4464.  
  4465. int m68k_execute(int num_cycles);
  4466.  
  4467.  
  4468.  
  4469.  
  4470.  
  4471.  
  4472. int m68k_cycles_run(void);
  4473. int m68k_cycles_remaining(void);
  4474. void m68k_modify_timeslice(int cycles);
  4475. void m68k_end_timeslice(void);
  4476.  
  4477.  
  4478.  
  4479.  
  4480.  
  4481. void m68k_set_irq(unsigned int int_level);
  4482.  
  4483.  
  4484.  
  4485. void m68k_pulse_halt(void);
  4486.  
  4487.  
  4488.  
  4489.  
  4490.  
  4491. unsigned int m68k_context_size(void);
  4492.  
  4493.  
  4494. unsigned int m68k_get_context(void* dst);
  4495.  
  4496.  
  4497. void m68k_set_context(void* dst);
  4498.  
  4499.  
  4500. void m68k_state_register(const char *type);
  4501.  
  4502.  
  4503.  
  4504.  
  4505.  
  4506.  
  4507. unsigned int m68k_get_reg(void* context, m68k_register_t reg);
  4508.  
  4509.  
  4510. void m68k_set_reg(m68k_register_t reg, unsigned int value);
  4511.  
  4512.  
  4513. unsigned int m68k_is_valid_instruction(unsigned int instruction, unsigned int cpu_type);
  4514.  
  4515.  
  4516.  
  4517.  
  4518. unsigned int m68k_disassemble(char* str_buff, unsigned int pc, unsigned int cpu_type);
  4519.  
  4520.  
  4521.  
  4522.  
  4523.  
  4524.  
  4525.  
  4526. # 1 "src/cpu/m68k/m68kconf.h" 1
  4527. # 181 "src/cpu/m68k/m68kconf.h"
  4528.  extern "C" {
  4529. # 190 "src/cpu/m68k/m68kconf.h"
  4530. void M68KResetCallback(void);
  4531. int M68KIRQAcknowledge(int nIRQ);
  4532. void M68KRTECallback(void);
  4533. void M68KcmpildCallback(unsigned int val, int reg);
  4534.  
  4535. unsigned int M68KFetchByte(unsigned int a);
  4536. unsigned int M68KFetchWord(unsigned int a);
  4537. unsigned int M68KFetchLong(unsigned int a);
  4538.  
  4539. extern unsigned int (*SekDbgFetchByteDisassembler)(unsigned int);
  4540. extern unsigned int (*SekDbgFetchWordDisassembler)(unsigned int);
  4541. extern unsigned int (*SekDbgFetchLongDisassembler)(unsigned int);
  4542. # 212 "src/cpu/m68k/m68kconf.h"
  4543. unsigned int M68KReadByte(unsigned int a);
  4544. unsigned int M68KReadWord(unsigned int a);
  4545. unsigned int M68KReadLong(unsigned int a);
  4546.  
  4547. void M68KWriteByte(unsigned int a, unsigned int d);
  4548. void M68KWriteWord(unsigned int a, unsigned int d);
  4549. void M68KWriteLong(unsigned int a, unsigned int d);
  4550.  
  4551.  
  4552.  
  4553.  }
  4554. # 355 "src/cpu/m68k/m68k.h" 2
  4555.  
  4556.  
  4557.  
  4558.  
  4559.  
  4560.  
  4561.  
  4562.  }
  4563. # 18 "src/cpu/sek.h" 2
  4564. # 62 "src/cpu/sek.h"
  4565.  extern "C" INT32 nSekM68KContextSize[(4)];
  4566.  extern "C" INT8* SekM68KContext[(4)];
  4567.  extern "C" INT32 m68k_ICount;
  4568.  
  4569.  
  4570. typedef UINT8 ( *pSekReadByteHandler)(UINT32 a);
  4571. typedef void ( *pSekWriteByteHandler)(UINT32 a, UINT8 d);
  4572. typedef UINT16 ( *pSekReadWordHandler)(UINT32 a);
  4573. typedef void ( *pSekWriteWordHandler)(UINT32 a, UINT16 d);
  4574. typedef UINT32 ( *pSekReadLongHandler)(UINT32 a);
  4575. typedef void ( *pSekWriteLongHandler)(UINT32 a, UINT32 d);
  4576.  
  4577. typedef INT32 ( *pSekResetCallback)();
  4578. typedef INT32 ( *pSekRTECallback)();
  4579. typedef INT32 ( *pSekIrqCallback)(INT32 irq);
  4580. typedef INT32 ( *pSekCmpCallback)(UINT32 val, INT32 reg);
  4581.  
  4582. extern INT32 nSekCycles[(4)], nSekCPUType[(4)];
  4583.  
  4584.  
  4585.  
  4586.  
  4587. struct SekExt {
  4588.  UINT8* MemMap[(1 << (24 - (10))) * 3];
  4589.  
  4590.  
  4591.  pSekReadByteHandler ReadByte[(10)];
  4592.  pSekWriteByteHandler WriteByte[(10)];
  4593.  pSekReadWordHandler ReadWord[(10)];
  4594.  pSekWriteWordHandler WriteWord[(10)];
  4595.  pSekReadLongHandler ReadLong[(10)];
  4596.  pSekWriteLongHandler WriteLong[(10)];
  4597.  
  4598.  pSekResetCallback ResetCallback;
  4599.  pSekRTECallback RTECallback;
  4600.  pSekIrqCallback IrqCallback;
  4601.  pSekCmpCallback CmpCallback;
  4602. };
  4603.  
  4604.  
  4605.  
  4606.  
  4607.  
  4608.  
  4609. extern struct SekExt *SekExt[(4)], *pSekExt;
  4610. extern INT32 nSekActive;
  4611. extern INT32 nSekCyclesTotal, nSekCyclesScanline, nSekCyclesSegment, nSekCyclesDone, nSekCyclesToDo;
  4612.  
  4613. UINT32 SekReadByte(UINT32 a);
  4614. UINT32 SekReadWord(UINT32 a);
  4615. UINT32 SekReadLong(UINT32 a);
  4616.  
  4617. UINT32 SekFetchByte(UINT32 a);
  4618. UINT32 SekFetchWord(UINT32 a);
  4619. UINT32 SekFetchLong(UINT32 a);
  4620.  
  4621. void SekWriteByte(UINT32 a, UINT8 d);
  4622. void SekWriteWord(UINT32 a, UINT16 d);
  4623. void SekWriteLong(UINT32 a, UINT32 d);
  4624.  
  4625. void SekWriteByteROM(UINT32 a, UINT8 d);
  4626. void SekWriteWordROM(UINT32 a, UINT16 d);
  4627. void SekWriteLongROM(UINT32 a, UINT32 d);
  4628.  
  4629. INT32 SekInit(INT32 nCount, INT32 nCPUType);
  4630. INT32 SekExit();
  4631.  
  4632. void SekNewFrame();
  4633. void SekSetCyclesScanline(INT32 nCycles);
  4634.  
  4635. void SekClose();
  4636. void SekOpen(const INT32 i);
  4637. INT32 SekGetActive();
  4638.  
  4639.  
  4640.  
  4641.  
  4642.  
  4643. void SekSetIRQLine(const INT32 line, const INT32 status);
  4644. void SekReset();
  4645.  
  4646. void SekRunEnd();
  4647. void SekRunAdjust(const INT32 nCycles);
  4648. INT32 SekRun(const INT32 nCycles);
  4649.  
  4650. inline static INT32 SekIdle(INT32 nCycles)
  4651. {
  4652.  
  4653.  
  4654.  
  4655.  
  4656.  
  4657.  
  4658.  nSekCyclesTotal += nCycles;
  4659.  
  4660.  return nCycles;
  4661. }
  4662.  
  4663. inline static INT32 SekSegmentCycles()
  4664. {
  4665.  
  4666.  
  4667.  
  4668.  
  4669.  
  4670.  
  4671.  
  4672.  return nSekCyclesDone + nSekCyclesToDo - m68k_ICount;
  4673.  
  4674.  
  4675.  
  4676. }
  4677.  
  4678.  
  4679.  
  4680.  
  4681. inline static INT32 SekTotalCycles()
  4682.  
  4683. {
  4684.  
  4685.  
  4686.  
  4687.  
  4688.  
  4689.  
  4690.  
  4691.  return nSekCyclesTotal + nSekCyclesToDo - m68k_ICount;
  4692.  
  4693.  
  4694.  
  4695. }
  4696.  
  4697. inline static INT32 SekCurrentScanline()
  4698. {
  4699.  
  4700.  
  4701.  
  4702.  
  4703.  
  4704.  
  4705.  return SekTotalCycles() / nSekCyclesScanline;
  4706. }
  4707. # 213 "src/cpu/sek.h"
  4708. INT32 SekMapMemory(UINT8* pMemory, UINT32 nStart, UINT32 nEnd, INT32 nType);
  4709. INT32 SekMapHandler(uintptr_t nHandler, UINT32 nStart, UINT32 nEnd, INT32 nType);
  4710.  
  4711.  
  4712. INT32 SekSetReadByteHandler(INT32 i, pSekReadByteHandler pHandler);
  4713. INT32 SekSetWriteByteHandler(INT32 i, pSekWriteByteHandler pHandler);
  4714. INT32 SekSetReadWordHandler(INT32 i, pSekReadWordHandler pHandler);
  4715. INT32 SekSetWriteWordHandler(INT32 i, pSekWriteWordHandler pHandler);
  4716. INT32 SekSetReadLongHandler(INT32 i, pSekReadLongHandler pHandler);
  4717. INT32 SekSetWriteLongHandler(INT32 i, pSekWriteLongHandler pHandler);
  4718.  
  4719.  
  4720. INT32 SekSetResetCallback(pSekResetCallback pCallback);
  4721. INT32 SekSetRTECallback(pSekRTECallback pCallback);
  4722. INT32 SekSetIrqCallback(pSekIrqCallback pCallback);
  4723. INT32 SekSetCmpCallback(pSekCmpCallback pCallback);
  4724.  
  4725.  
  4726. INT32 SekGetPC(INT32 n);
  4727.  
  4728. INT32 SekScan(INT32 nAction);
  4729. # 6 "src/burn/drv/dataeast/d_cninja.cpp" 2
  4730. # 1 "src/cpu/zet.h" 1
  4731.  
  4732.  
  4733.  
  4734.  
  4735.  
  4736.  
  4737.  
  4738. # 1 "src/cpu/z80/z80.h" 1
  4739. # 9 "src/cpu/z80/z80.h"
  4740. typedef union
  4741. {
  4742.  
  4743.  struct { UINT8 l,h,h2,h3; } b;
  4744.  struct { UINT16 l,h; } w;
  4745.  
  4746.  
  4747.  
  4748.  
  4749.  UINT32 d;
  4750. } Z80_PAIR;
  4751.  
  4752. typedef struct
  4753. {
  4754.  Z80_PAIR prvpc,pc,sp,af,bc,de,hl,ix,iy;
  4755.  Z80_PAIR af2,bc2,de2,hl2;
  4756.  UINT8 r,r2,iff1,iff2,halt,im,i;
  4757.  UINT8 nmi_state;
  4758.  UINT8 nmi_pending;
  4759.  UINT8 irq_state;
  4760.  UINT8 after_ei;
  4761.  INT32 cycles_left;
  4762.  const struct z80_irq_daisy_chain *daisy;
  4763.  int (*irq_callback)(int irqline);
  4764. } Z80_Regs;
  4765.  
  4766. enum {
  4767.  Z80_PC=1, Z80_SP,
  4768.  Z80_A, Z80_B, Z80_C, Z80_D, Z80_E, Z80_H, Z80_L,
  4769.  Z80_AF, Z80_BC, Z80_DE, Z80_HL,
  4770.  Z80_IX, Z80_IY, Z80_AF2, Z80_BC2, Z80_DE2, Z80_HL2,
  4771.  Z80_R, Z80_I, Z80_IM, Z80_IFF1, Z80_IFF2, Z80_HALT,
  4772.  Z80_DC0, Z80_DC1, Z80_DC2, Z80_DC3
  4773. };
  4774.  
  4775. enum {
  4776.  Z80_TABLE_op,
  4777.  Z80_TABLE_cb,
  4778.  Z80_TABLE_ed,
  4779.  Z80_TABLE_xy,
  4780.  Z80_TABLE_xycb,
  4781.  Z80_TABLE_ex
  4782. };
  4783.  
  4784. enum
  4785. {
  4786.  CPUINFO_PTR_Z80_CYCLE_TABLE = 0x18000,
  4787.  CPUINFO_PTR_Z80_CYCLE_TABLE_LAST = CPUINFO_PTR_Z80_CYCLE_TABLE + Z80_TABLE_ex
  4788. };
  4789.  
  4790. void Z80Init();
  4791. void Z80Reset();
  4792. void Z80Exit();
  4793. int Z80Execute(int cycles);
  4794. void Z80Burn(int cycles);
  4795. void Z80SetIrqLine(int irqline, int state);
  4796. void Z80GetContext (void *dst);
  4797. void Z80SetContext (void *src);
  4798. int Z80Scan(int nAction);
  4799. INT32 z80TotalCycles();
  4800.  
  4801. extern unsigned char Z80Vector;
  4802.  
  4803. extern int z80_ICount;
  4804. extern UINT32 EA;
  4805.  
  4806. typedef unsigned char ( *Z80ReadIoHandler)(unsigned int a);
  4807. typedef void ( *Z80WriteIoHandler)(unsigned int a, unsigned char v);
  4808. typedef unsigned char ( *Z80ReadProgHandler)(unsigned int a);
  4809. typedef void ( *Z80WriteProgHandler)(unsigned int a, unsigned char v);
  4810. typedef unsigned char ( *Z80ReadOpHandler)(unsigned int a);
  4811. typedef unsigned char ( *Z80ReadOpArgHandler)(unsigned int a);
  4812.  
  4813. void Z80SetIOReadHandler(Z80ReadIoHandler handler);
  4814. void Z80SetIOWriteHandler(Z80WriteIoHandler handler);
  4815. void Z80SetProgramReadHandler(Z80ReadProgHandler handler);
  4816. void Z80SetProgramWriteHandler(Z80WriteProgHandler handler);
  4817. void Z80SetCPUOpReadHandler(Z80ReadOpHandler handler);
  4818. void Z80SetCPUOpArgReadHandler(Z80ReadOpArgHandler handler);
  4819.  
  4820. int ActiveZ80GetPC();
  4821. int ActiveZ80GetBC();
  4822. int ActiveZ80GetDE();
  4823. int ActiveZ80GetHL();
  4824. # 9 "src/cpu/zet.h" 2
  4825.  
  4826. extern INT32 nHasZet;
  4827. void ZetWriteByte(UINT16 address, UINT8 data);
  4828. UINT8 ZetReadByte(UINT16 address);
  4829. void ZetWriteRom(UINT16 address, UINT8 data);
  4830. INT32 ZetInit(INT32 nCount);
  4831. void ZetExit();
  4832. void ZetNewFrame();
  4833. void ZetOpen(INT32 nCPU);
  4834. void ZetClose();
  4835. INT32 ZetGetActive();
  4836. INT32 ZetMemCallback(INT32 nStart,INT32 nEnd,INT32 nMode);
  4837. INT32 ZetMemEnd();
  4838. INT32 ZetMapArea(INT32 nStart, INT32 nEnd, INT32 nMode, UINT8 *Mem);
  4839. INT32 ZetMapArea(INT32 nStart, INT32 nEnd, INT32 nMode, UINT8 *Mem01, UINT8 *Mem02);
  4840. void ZetReset();
  4841. INT32 ZetPc(INT32 n);
  4842. INT32 ZetBc(INT32 n);
  4843. INT32 ZetDe(INT32 n);
  4844. INT32 ZetHL(INT32 n);
  4845. INT32 ZetScan(INT32 nAction);
  4846. INT32 ZetRun(INT32 nCycles);
  4847. void ZetRunEnd();
  4848. void ZetSetIRQLine(const INT32 line, const INT32 status);
  4849. void ZetSetVector(INT32 vector);
  4850. INT32 ZetNmi();
  4851. INT32 ZetIdle(INT32 nCycles);
  4852. INT32 ZetSegmentCycles();
  4853. INT32 ZetTotalCycles();
  4854. # 46 "src/cpu/zet.h"
  4855. void ZetSetReadHandler(UINT8 ( *pHandler)(UINT16));
  4856. void ZetSetWriteHandler(void ( *pHandler)(UINT16, UINT8));
  4857. void ZetSetInHandler(UINT8 ( *pHandler)(UINT16));
  4858. void ZetSetOutHandler(void ( *pHandler)(UINT16, UINT8));
  4859.  
  4860. void ZetSetBUSREQLine(INT32 nStatus);
  4861. # 7 "src/burn/drv/dataeast/d_cninja.cpp" 2
  4862. # 1 "src/cpu/h6280_intf.h" 1
  4863.  
  4864. void h6280_set_irq_line(INT32 irqline, INT32 state);
  4865. void h6280_init(INT32 (*irqcallback)(INT32));
  4866. # 13 "src/cpu/h6280_intf.h"
  4867. void h6280MapMemory(UINT8 *src, UINT32 start, UINT32 finish, INT32 type);
  4868.  
  4869. void h6280SetIrqCallbackHandler(INT32 (*callback)(INT32));
  4870. void h6280SetlinesCallback(void (*setlines_callback)(INT32 lines));
  4871.  
  4872. void h6280SetWritePortHandler(void (*write)(UINT8, UINT8));
  4873. void h6280SetWriteHandler(void (*write)(UINT32, UINT8));
  4874. void h6280SetReadHandler(UINT8 (*read)(UINT32));
  4875.  
  4876. void h6280_write_port(UINT8 port, UINT8 data);
  4877. void h6280_write(UINT32 address, UINT8 data);
  4878. UINT8 h6280_read(UINT32 address);
  4879. UINT8 h6280_fetch(UINT32 address);
  4880.  
  4881. void h6280Init(INT32);
  4882. void h6280Open(INT32);
  4883. void h6280Reset();
  4884. INT32 h6280Run(INT32 cycles);
  4885. void h6280Close();
  4886. void h6280Exit();
  4887.  
  4888. extern INT32 nh6280CpuCount;
  4889.  
  4890.  
  4891.  
  4892.  
  4893.  
  4894.  
  4895.  
  4896. void h6280SetIRQLine(INT32 line, INT32 state);
  4897.  
  4898. INT32 h6280CpuScan(INT32 nAction);
  4899.  
  4900. INT32 h6280TotalCycles();
  4901. void h6280NewFrame();
  4902. void h6280RunEnd();
  4903.  
  4904. INT32 h6280GetActive();
  4905.  
  4906. void h6280_write_rom(UINT32 address, UINT8 data);
  4907.  
  4908.  
  4909. UINT8 h6280_irq_status_r(UINT32 offset);
  4910. void h6280_irq_status_w(UINT32 offset, UINT8 data);
  4911. UINT8 h6280_timer_r(UINT32);
  4912. void h6280_timer_w(UINT32 offset, UINT8 data);
  4913.  
  4914.  
  4915. UINT8 h6280io_get_buffer(void);
  4916. void h6280io_set_buffer(UINT8);
  4917. # 8 "src/burn/drv/dataeast/d_cninja.cpp" 2
  4918. # 1 "src/burn/bitswap.h" 1
  4919. # 9 "src/burn/drv/dataeast/d_cninja.cpp" 2
  4920. # 1 "src/burn/drv/dataeast/deco16ic.h" 1
  4921.  
  4922.  
  4923.  
  4924. extern UINT16 *deco16_pf_control[2];
  4925. extern UINT8 *deco16_pf_ram[4];
  4926. extern UINT8 *deco16_pf_rowscroll[4];
  4927.  
  4928. extern UINT16 deco16_priority;
  4929.  
  4930. void deco16_set_bank_callback(INT32 tmap, INT32 (*callback)(const INT32 bank));
  4931. void deco16_set_color_base(INT32 tmap, INT32 base);
  4932. void deco16_set_color_mask(INT32 tmap, INT32 mask);
  4933. void deco16_set_transparency_mask(INT32 tmap, INT32 mask);
  4934. void deco16_set_gfxbank(INT32 tmap, INT32 small, INT32 big);
  4935. void deco16_set_global_offsets(INT32 x, INT32 y);
  4936.  
  4937. void deco16_set_scroll_offs(INT32 tmap, INT32 size, INT32 offsetx, INT32 offsety);
  4938.  
  4939. INT32 deco16_get_tilemap_size(INT32 tmap);
  4940.  
  4941. extern UINT8 *deco16_prio_map;
  4942. void deco16_clear_prio_map();
  4943. void deco16_draw_prio_sprite(UINT16 *dest, UINT8 *gfx, INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy, INT32 pri);
  4944. void deco16_draw_prio_sprite(UINT16 *dest, UINT8 *gfx, INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy, INT32 pri, INT32 spri);
  4945. void deco16_draw_alphaprio_sprite(UINT32 *palette, UINT8 *gfx, INT32 code, INT32 color, INT32 sx, INT32 sy, INT32 flipx, INT32 flipy, INT32 pri, INT32 spri, INT32 alpha);
  4946.  
  4947. void deco16_set_graphics(UINT8 *gfx0, INT32 len0, UINT8 *gfx1, INT32 len1, UINT8 *gfx2, INT32 len2);
  4948. void deco16_set_graphics(INT32 num, UINT8 *gfx, INT32 len, INT32 size );
  4949.  
  4950. void deco16Init(INT32 no_pf34, INT32 split, INT32 full_width);
  4951. void deco16Reset();
  4952. void deco16Exit();
  4953.  
  4954. void deco16Scan();
  4955.  
  4956. void deco16_pf12_update();
  4957. void deco16_pf34_update();
  4958. # 47 "src/burn/drv/dataeast/deco16ic.h"
  4959. void deco16_draw_layer(INT32 tmap, UINT16 *dest, INT32 flags);
  4960.  
  4961. void deco16_tile_decode(UINT8 *src, UINT8 *dst, INT32 len, INT32 type);
  4962. void deco16_sprite_decode(UINT8 *gfx, INT32 len);
  4963.  
  4964. void deco16_palette_recalculate(UINT32 *palette, UINT8 *pal);
  4965. # 71 "src/burn/drv/dataeast/deco16ic.h"
  4966. extern INT32 deco16_soundlatch;
  4967.  
  4968. void deco16SoundReset();
  4969. void deco16SoundInit(UINT8 *rom, UINT8 *ram, INT32 huc_clock, INT32 ym2203, void (ym2151_port)(UINT32,UINT32), double ym2151vol, INT32 msmclk0, double msmvol0, INT32 msmclk1, double msmvol1);
  4970. void deco16SoundExit();
  4971. void deco16SoundUpdate(INT16 *buf, INT32 len);
  4972. void deco16SoundScan(INT32 nAction, INT32 *pnMin);
  4973.  
  4974.  
  4975.  
  4976.  
  4977. void deco56_decrypt_gfx(UINT8 *rom, INT32 len);
  4978. void deco74_decrypt_gfx(UINT8 *rom, INT32 len);
  4979. void deco56_remap_gfx(UINT8 *rom, INT32 len);
  4980.  
  4981. void deco102_decrypt_cpu(UINT8 *data, UINT8 *ops, INT32 size, INT32 address_xor, INT32 data_select_xor, INT32 opcode_select_xor);
  4982.  
  4983. void deco156_decrypt(UINT8 *src, INT32 len);
  4984.  
  4985.  
  4986.  
  4987. extern UINT16 *deco16_prot_ram;
  4988. extern UINT16 *deco16_prot_inputs;
  4989. extern UINT16 *deco16_buffer_ram;
  4990. extern INT32 deco16_vblank;
  4991.  
  4992. void deco16_66_prot_w(INT32 offset, UINT16 data, INT32 mask);
  4993. UINT16 deco16_66_prot_r(INT32 offset);
  4994.  
  4995. void deco16_60_prot_w(INT32 offset, UINT16 data, INT32 mask);
  4996. UINT16 deco16_60_prot_r(INT32 offset);
  4997.  
  4998. UINT16 deco16_104_cninja_prot_r(INT32 offset);
  4999.  
  5000. UINT16 deco16_146_funkyjet_prot_r(INT32 offset);
  5001.  
  5002. void deco16_104_rohga_prot_w(INT32 offset, UINT16 data, INT32 mask);
  5003. UINT16 deco16_104_rohga_prot_r(INT32 offset);
  5004.  
  5005. UINT16 deco16_104_prot_r(INT32 offset);
  5006.  
  5007. void deco16_146_nitroball_prot_w(INT32 offset, UINT16 data, INT32 mask);
  5008. UINT16 deco16_146_nitroball_prot_r(INT32 offset);
  5009.  
  5010. void deco16_146_fghthist_prot_w(INT32 offset, UINT32 data, UINT32 mem_mask);
  5011. UINT32 deco16_146_fghthist_prot_r(INT32 offset);
  5012. # 10 "src/burn/drv/dataeast/d_cninja.cpp" 2
  5013. # 1 "src/burn/snd/burn_ym2203.h" 1
  5014.  
  5015. # 1 "src/burn/driver.h" 1
  5016. # 11 "src/burn/driver.h"
  5017. # 1 "/usr/include/math.h" 1 3 4
  5018. # 30 "/usr/include/math.h" 3 4
  5019. extern "C" {
  5020.  
  5021.  
  5022.  
  5023. # 1 "/usr/include/arm-linux-gnueabihf/bits/huge_val.h" 1 3 4
  5024. # 35 "/usr/include/math.h" 2 3 4
  5025.  
  5026. # 1 "/usr/include/arm-linux-gnueabihf/bits/huge_valf.h" 1 3 4
  5027. # 37 "/usr/include/math.h" 2 3 4
  5028. # 1 "/usr/include/arm-linux-gnueabihf/bits/huge_vall.h" 1 3 4
  5029. # 38 "/usr/include/math.h" 2 3 4
  5030.  
  5031.  
  5032. # 1 "/usr/include/arm-linux-gnueabihf/bits/inf.h" 1 3 4
  5033. # 41 "/usr/include/math.h" 2 3 4
  5034.  
  5035.  
  5036. # 1 "/usr/include/arm-linux-gnueabihf/bits/nan.h" 1 3 4
  5037. # 44 "/usr/include/math.h" 2 3 4
  5038.  
  5039.  
  5040.  
  5041. # 1 "/usr/include/arm-linux-gnueabihf/bits/mathdef.h" 1 3 4
  5042. # 28 "/usr/include/arm-linux-gnueabihf/bits/mathdef.h" 3 4
  5043. typedef float float_t;
  5044.  
  5045. typedef double double_t;
  5046. # 48 "/usr/include/math.h" 2 3 4
  5047. # 71 "/usr/include/math.h" 3 4
  5048. # 1 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 1 3 4
  5049. # 53 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4
  5050.  
  5051.  
  5052. extern double acos (double __x) throw (); extern double __acos (double __x) throw ();
  5053.  
  5054. extern double asin (double __x) throw (); extern double __asin (double __x) throw ();
  5055.  
  5056. extern double atan (double __x) throw (); extern double __atan (double __x) throw ();
  5057.  
  5058. extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw ();
  5059.  
  5060.  
  5061. extern double cos (double __x) throw (); extern double __cos (double __x) throw ();
  5062.  
  5063. extern double sin (double __x) throw (); extern double __sin (double __x) throw ();
  5064.  
  5065. extern double tan (double __x) throw (); extern double __tan (double __x) throw ();
  5066.  
  5067.  
  5068.  
  5069.  
  5070. extern double cosh (double __x) throw (); extern double __cosh (double __x) throw ();
  5071.  
  5072. extern double sinh (double __x) throw (); extern double __sinh (double __x) throw ();
  5073.  
  5074. extern double tanh (double __x) throw (); extern double __tanh (double __x) throw ();
  5075.  
  5076.  
  5077.  
  5078.  
  5079. extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw ()
  5080.                                                            ;
  5081.  
  5082.  
  5083.  
  5084.  
  5085.  
  5086. extern double acosh (double __x) throw (); extern double __acosh (double __x) throw ();
  5087.  
  5088. extern double asinh (double __x) throw (); extern double __asinh (double __x) throw ();
  5089.  
  5090. extern double atanh (double __x) throw (); extern double __atanh (double __x) throw ();
  5091.  
  5092.  
  5093.  
  5094.  
  5095.  
  5096.  
  5097.  
  5098. extern double exp (double __x) throw (); extern double __exp (double __x) throw ();
  5099.  
  5100.  
  5101. extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw ();
  5102.  
  5103.  
  5104. extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw ();
  5105.  
  5106.  
  5107. extern double log (double __x) throw (); extern double __log (double __x) throw ();
  5108.  
  5109.  
  5110. extern double log10 (double __x) throw (); extern double __log10 (double __x) throw ();
  5111.  
  5112.  
  5113. extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw ();
  5114.  
  5115.  
  5116.  
  5117.  
  5118. extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw ();
  5119.  
  5120. extern double pow10 (double __x) throw (); extern double __pow10 (double __x) throw ();
  5121.  
  5122.  
  5123.  
  5124.  
  5125.  
  5126. extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw ();
  5127.  
  5128.  
  5129. extern double log1p (double __x) throw (); extern double __log1p (double __x) throw ();
  5130.  
  5131.  
  5132. extern double logb (double __x) throw (); extern double __logb (double __x) throw ();
  5133.  
  5134.  
  5135.  
  5136.  
  5137.  
  5138.  
  5139. extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw ();
  5140.  
  5141.  
  5142. extern double log2 (double __x) throw (); extern double __log2 (double __x) throw ();
  5143.  
  5144.  
  5145.  
  5146.  
  5147.  
  5148.  
  5149.  
  5150.  
  5151. extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw ();
  5152.  
  5153.  
  5154. extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw ();
  5155.  
  5156.  
  5157.  
  5158.  
  5159.  
  5160. extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw ();
  5161.  
  5162.  
  5163.  
  5164.  
  5165.  
  5166.  
  5167. extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw ();
  5168.  
  5169.  
  5170.  
  5171.  
  5172.  
  5173.  
  5174.  
  5175.  
  5176. extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__));
  5177.  
  5178.  
  5179. extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__));
  5180.  
  5181.  
  5182. extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__));
  5183.  
  5184.  
  5185. extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw ();
  5186.  
  5187.  
  5188.  
  5189.  
  5190. extern int __isinf (double __value) throw () __attribute__ ((__const__));
  5191.  
  5192.  
  5193. extern int __finite (double __value) throw () __attribute__ ((__const__));
  5194.  
  5195.  
  5196.  
  5197.  
  5198.  
  5199. extern int isinf (double __value) throw () __attribute__ ((__const__));
  5200.  
  5201.  
  5202. extern int finite (double __value) throw () __attribute__ ((__const__));
  5203.  
  5204.  
  5205. extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw ();
  5206.  
  5207.  
  5208.  
  5209. extern double significand (double __x) throw (); extern double __significand (double __x) throw ();
  5210.  
  5211.  
  5212.  
  5213.  
  5214.  
  5215. extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__));
  5216.  
  5217.  
  5218.  
  5219.  
  5220.  
  5221.  
  5222. extern double nan (__const char *__tagb) throw () __attribute__ ((__const__)); extern double __nan (__const char *__tagb) throw () __attribute__ ((__const__));
  5223.  
  5224.  
  5225.  
  5226.  
  5227.  
  5228. extern int __isnan (double __value) throw () __attribute__ ((__const__));
  5229.  
  5230.  
  5231.  
  5232. extern int isnan (double __value) throw () __attribute__ ((__const__));
  5233.  
  5234.  
  5235. extern double j0 (double) throw (); extern double __j0 (double) throw ();
  5236. extern double j1 (double) throw (); extern double __j1 (double) throw ();
  5237. extern double jn (int, double) throw (); extern double __jn (int, double) throw ();
  5238. extern double y0 (double) throw (); extern double __y0 (double) throw ();
  5239. extern double y1 (double) throw (); extern double __y1 (double) throw ();
  5240. extern double yn (int, double) throw (); extern double __yn (int, double) throw ();
  5241.  
  5242.  
  5243.  
  5244.  
  5245.  
  5246.  
  5247. extern double erf (double) throw (); extern double __erf (double) throw ();
  5248. extern double erfc (double) throw (); extern double __erfc (double) throw ();
  5249. extern double lgamma (double) throw (); extern double __lgamma (double) throw ();
  5250.  
  5251.  
  5252.  
  5253.  
  5254.  
  5255.  
  5256. extern double tgamma (double) throw (); extern double __tgamma (double) throw ();
  5257.  
  5258.  
  5259.  
  5260.  
  5261.  
  5262. extern double gamma (double) throw (); extern double __gamma (double) throw ();
  5263.  
  5264.  
  5265.  
  5266.  
  5267.  
  5268.  
  5269. extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw ();
  5270.  
  5271.  
  5272.  
  5273.  
  5274.  
  5275.  
  5276.  
  5277. extern double rint (double __x) throw (); extern double __rint (double __x) throw ();
  5278.  
  5279.  
  5280. extern double nextafter (double __x, double __y) throw () __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) throw () __attribute__ ((__const__));
  5281.  
  5282. extern double nexttoward (double __x, long double __y) throw () __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) throw () __attribute__ ((__const__));
  5283.  
  5284.  
  5285.  
  5286. extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw ();
  5287.  
  5288.  
  5289.  
  5290. extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw ();
  5291.  
  5292.  
  5293.  
  5294. extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw ();
  5295.  
  5296.  
  5297.  
  5298.  
  5299. extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw ();
  5300.  
  5301.  
  5302.  
  5303. extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw ();
  5304.  
  5305.  
  5306.  
  5307. extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__));
  5308.  
  5309.  
  5310.  
  5311. extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__));
  5312.  
  5313.  
  5314.  
  5315.  
  5316. extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw ();
  5317.  
  5318.  
  5319.  
  5320.  
  5321.  
  5322.  
  5323. extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw ();
  5324. extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw ();
  5325.  
  5326.  
  5327.  
  5328. extern long int lround (double __x) throw (); extern long int __lround (double __x) throw ();
  5329. extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw ();
  5330.  
  5331.  
  5332.  
  5333. extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw ();
  5334.  
  5335.  
  5336. extern double fmax (double __x, double __y) throw (); extern double __fmax (double __x, double __y) throw ();
  5337.  
  5338.  
  5339. extern double fmin (double __x, double __y) throw (); extern double __fmin (double __x, double __y) throw ();
  5340.  
  5341.  
  5342.  
  5343. extern int __fpclassify (double __value) throw ()
  5344.      __attribute__ ((__const__));
  5345.  
  5346.  
  5347. extern int __signbit (double __value) throw ()
  5348.      __attribute__ ((__const__));
  5349.  
  5350.  
  5351.  
  5352. extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw ();
  5353.  
  5354.  
  5355.  
  5356.  
  5357.  
  5358.  
  5359.  
  5360.  
  5361. extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw ();
  5362. # 72 "/usr/include/math.h" 2 3 4
  5363. # 94 "/usr/include/math.h" 3 4
  5364. # 1 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 1 3 4
  5365. # 53 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4
  5366.  
  5367.  
  5368. extern float acosf (float __x) throw (); extern float __acosf (float __x) throw ();
  5369.  
  5370. extern float asinf (float __x) throw (); extern float __asinf (float __x) throw ();
  5371.  
  5372. extern float atanf (float __x) throw (); extern float __atanf (float __x) throw ();
  5373.  
  5374. extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw ();
  5375.  
  5376.  
  5377. extern float cosf (float __x) throw (); extern float __cosf (float __x) throw ();
  5378.  
  5379. extern float sinf (float __x) throw (); extern float __sinf (float __x) throw ();
  5380.  
  5381. extern float tanf (float __x) throw (); extern float __tanf (float __x) throw ();
  5382.  
  5383.  
  5384.  
  5385.  
  5386. extern float coshf (float __x) throw (); extern float __coshf (float __x) throw ();
  5387.  
  5388. extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw ();
  5389.  
  5390. extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw ();
  5391.  
  5392.  
  5393.  
  5394.  
  5395. extern void
  5396.  sincosf
  5397. # 82 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4
  5398.  (float __x, float *__sinx, float *__cosx) throw (); extern void
  5399.  __sincosf
  5400. # 82 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4
  5401.  (float __x, float *__sinx, float *__cosx) throw ()
  5402.                                                            ;
  5403.  
  5404.  
  5405.  
  5406.  
  5407.  
  5408. extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw ();
  5409.  
  5410. extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw ();
  5411.  
  5412. extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw ();
  5413.  
  5414.  
  5415.  
  5416.  
  5417.  
  5418.  
  5419.  
  5420. extern float expf (float __x) throw (); extern float __expf (float __x) throw ();
  5421.  
  5422.  
  5423. extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw ();
  5424.  
  5425.  
  5426. extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw ();
  5427.  
  5428.  
  5429. extern float logf (float __x) throw (); extern float __logf (float __x) throw ();
  5430.  
  5431.  
  5432. extern float log10f (float __x) throw (); extern float __log10f (float __x) throw ();
  5433.  
  5434.  
  5435. extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw ();
  5436.  
  5437.  
  5438.  
  5439.  
  5440. extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw ();
  5441.  
  5442. extern float pow10f (float __x) throw (); extern float __pow10f (float __x) throw ();
  5443.  
  5444.  
  5445.  
  5446.  
  5447.  
  5448. extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw ();
  5449.  
  5450.  
  5451. extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw ();
  5452.  
  5453.  
  5454. extern float logbf (float __x) throw (); extern float __logbf (float __x) throw ();
  5455.  
  5456.  
  5457.  
  5458.  
  5459.  
  5460.  
  5461. extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw ();
  5462.  
  5463.  
  5464. extern float log2f (float __x) throw (); extern float __log2f (float __x) throw ();
  5465.  
  5466.  
  5467.  
  5468.  
  5469.  
  5470.  
  5471.  
  5472.  
  5473. extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw ();
  5474.  
  5475.  
  5476. extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw ();
  5477.  
  5478.  
  5479.  
  5480.  
  5481.  
  5482. extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw ();
  5483.  
  5484.  
  5485.  
  5486.  
  5487.  
  5488.  
  5489. extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw ();
  5490.  
  5491.  
  5492.  
  5493.  
  5494.  
  5495.  
  5496.  
  5497.  
  5498. extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__));
  5499.  
  5500.  
  5501. extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__));
  5502.  
  5503.  
  5504. extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__));
  5505.  
  5506.  
  5507. extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw ();
  5508.  
  5509.  
  5510.  
  5511.  
  5512. extern int __isinff (float __value) throw () __attribute__ ((__const__));
  5513.  
  5514.  
  5515. extern int __finitef (float __value) throw () __attribute__ ((__const__));
  5516.  
  5517.  
  5518.  
  5519.  
  5520.  
  5521. extern int isinff (float __value) throw () __attribute__ ((__const__));
  5522.  
  5523.  
  5524. extern int finitef (float __value) throw () __attribute__ ((__const__));
  5525.  
  5526.  
  5527. extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw ();
  5528.  
  5529.  
  5530.  
  5531. extern float significandf (float __x) throw (); extern float __significandf (float __x) throw ();
  5532.  
  5533.  
  5534.  
  5535.  
  5536.  
  5537. extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__));
  5538.  
  5539.  
  5540.  
  5541.  
  5542.  
  5543.  
  5544. extern float nanf (__const char *__tagb) throw () __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) throw () __attribute__ ((__const__));
  5545.  
  5546.  
  5547.  
  5548.  
  5549.  
  5550. extern int __isnanf (float __value) throw () __attribute__ ((__const__));
  5551.  
  5552.  
  5553.  
  5554. extern int isnanf (float __value) throw () __attribute__ ((__const__));
  5555.  
  5556.  
  5557. extern float j0f (float) throw (); extern float __j0f (float) throw ();
  5558. extern float j1f (float) throw (); extern float __j1f (float) throw ();
  5559. extern float jnf (int, float) throw (); extern float __jnf (int, float) throw ();
  5560. extern float y0f (float) throw (); extern float __y0f (float) throw ();
  5561. extern float y1f (float) throw (); extern float __y1f (float) throw ();
  5562. extern float ynf (int, float) throw (); extern float __ynf (int, float) throw ();
  5563.  
  5564.  
  5565.  
  5566.  
  5567.  
  5568.  
  5569. extern float erff (float) throw (); extern float __erff (float) throw ();
  5570. extern float erfcf (float) throw (); extern float __erfcf (float) throw ();
  5571. extern float lgammaf (float) throw (); extern float __lgammaf (float) throw ();
  5572.  
  5573.  
  5574.  
  5575.  
  5576.  
  5577.  
  5578. extern float tgammaf (float) throw (); extern float __tgammaf (float) throw ();
  5579.  
  5580.  
  5581.  
  5582.  
  5583.  
  5584. extern float gammaf (float) throw (); extern float __gammaf (float) throw ();
  5585.  
  5586.  
  5587.  
  5588.  
  5589.  
  5590.  
  5591. extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw ();
  5592.  
  5593.  
  5594.  
  5595.  
  5596.  
  5597.  
  5598.  
  5599. extern float rintf (float __x) throw (); extern float __rintf (float __x) throw ();
  5600.  
  5601.  
  5602. extern float nextafterf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) throw () __attribute__ ((__const__));
  5603.  
  5604. extern float nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) throw () __attribute__ ((__const__));
  5605.  
  5606.  
  5607.  
  5608. extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw ();
  5609.  
  5610.  
  5611.  
  5612. extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw ();
  5613.  
  5614.  
  5615.  
  5616. extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw ();
  5617.  
  5618.  
  5619.  
  5620.  
  5621. extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw ();
  5622.  
  5623.  
  5624.  
  5625. extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw ();
  5626.  
  5627.  
  5628.  
  5629. extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__));
  5630.  
  5631.  
  5632.  
  5633. extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__));
  5634.  
  5635.  
  5636.  
  5637.  
  5638. extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw ();
  5639.  
  5640.  
  5641.  
  5642.  
  5643.  
  5644.  
  5645. extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw ();
  5646. extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw ();
  5647.  
  5648.  
  5649.  
  5650. extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw ();
  5651. extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw ();
  5652.  
  5653.  
  5654.  
  5655. extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw ();
  5656.  
  5657.  
  5658. extern float fmaxf (float __x, float __y) throw (); extern float __fmaxf (float __x, float __y) throw ();
  5659.  
  5660.  
  5661. extern float fminf (float __x, float __y) throw (); extern float __fminf (float __x, float __y) throw ();
  5662.  
  5663.  
  5664.  
  5665. extern int __fpclassifyf (float __value) throw ()
  5666.      __attribute__ ((__const__));
  5667.  
  5668.  
  5669. extern int __signbitf (float __value) throw ()
  5670.      __attribute__ ((__const__));
  5671.  
  5672.  
  5673.  
  5674. extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw ();
  5675.  
  5676.  
  5677.  
  5678.  
  5679.  
  5680.  
  5681.  
  5682.  
  5683. extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw ();
  5684. # 95 "/usr/include/math.h" 2 3 4
  5685. # 145 "/usr/include/math.h" 3 4
  5686. # 1 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 1 3 4
  5687. # 53 "/usr/include/arm-linux-gnueabihf/bits/mathcalls.h" 3 4
  5688.  
  5689.  
  5690. extern long double acosl (long double __x) throw () __asm__ ("" "acos"); extern long double __acosl (long double __x) throw () __asm__ ("" "__acos");
  5691.  
  5692. extern long double asinl (long double __x) throw () __asm__ ("" "asin"); extern long double __asinl (long double __x) throw () __asm__ ("" "__asin");
  5693.  
  5694. extern long double atanl (long double __x) throw () __asm__ ("" "atan"); extern long double __atanl (long double __x) throw () __asm__ ("" "__atan");
  5695.  
  5696. extern long double atan2l (long double __y, long double __x) throw () __asm__ ("" "atan2"); extern long double __atan2l (long double __y, long double __x) throw () __asm__ ("" "__atan2");
  5697.  
  5698.  
  5699. extern long double cosl (long double __x) throw () __asm__ ("" "cos"); extern long double __cosl (long double __x) throw () __asm__ ("" "__cos");
  5700.  
  5701. extern long double sinl (long double __x) throw () __asm__ ("" "sin"); extern long double __sinl (long double __x) throw () __asm__ ("" "__sin");
  5702.  
  5703. extern long double tanl (long double __x) throw () __asm__ ("" "tan"); extern long double __tanl (long double __x) throw () __asm__ ("" "__tan");
  5704.  
  5705.  
  5706.  
  5707.  
  5708. extern long double coshl (long double __x) throw () __asm__ ("" "cosh"); extern long double __coshl (long double __x) throw () __asm__ ("" "__cosh");
  5709.  
  5710. extern long double sinhl (long double __x) throw () __asm__ ("" "sinh"); extern long double __sinhl (long double __x) throw () __asm__ ("" "__sinh");
  5711.  
  5712. extern long double tanhl (long double __x) throw () __asm__ ("" "tanh"); extern long double __tanhl (long double __x) throw () __asm__ ("" "__tanh");
  5713.  
  5714.  
  5715.  
  5716.  
  5717. extern void sincosl (long double __x, long double *__sinx, long double *__cosx) throw () __asm__ ("" "sincos"); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) throw () __asm__ ("" "__sincos")
  5718.                                                            ;
  5719.  
  5720.  
  5721.  
  5722.  
  5723.  
  5724. extern long double acoshl (long double __x) throw () __asm__ ("" "acosh"); extern long double __acoshl (long double __x) throw () __asm__ ("" "__acosh");
  5725.  
  5726. extern long double asinhl (long double __x) throw () __asm__ ("" "asinh"); extern long double __asinhl (long double __x) throw () __asm__ ("" "__asinh");
  5727.  
  5728. extern long double atanhl (long double __x) throw () __asm__ ("" "atanh"); extern long double __atanhl (long double __x) throw () __asm__ ("" "__atanh");
  5729.  
  5730.  
  5731.  
  5732.  
  5733.  
  5734.  
  5735.  
  5736. extern long double expl (long double __x) throw () __asm__ ("" "exp"); extern long double __expl (long double __x) throw () __asm__ ("" "__exp");
  5737.  
  5738.  
  5739. extern long double frexpl (long double __x, int *__exponent) throw () __asm__ ("" "frexp"); extern long double __frexpl (long double __x, int *__exponent) throw () __asm__ ("" "__frexp");
  5740.  
  5741.  
  5742. extern long double ldexpl (long double __x, int __exponent) throw () __asm__ ("" "ldexp"); extern long double __ldexpl (long double __x, int __exponent) throw () __asm__ ("" "__ldexp");
  5743.  
  5744.  
  5745. extern long double logl (long double __x) throw () __asm__ ("" "log"); extern long double __logl (long double __x) throw () __asm__ ("" "__log");
  5746.  
  5747.  
  5748. extern long double log10l (long double __x) throw () __asm__ ("" "log10"); extern long double __log10l (long double __x) throw () __asm__ ("" "__log10");
  5749.  
  5750.  
  5751. extern long double modfl (long double __x, long double *__iptr) throw () __asm__ ("" "modf"); extern long double __modfl (long double __x, long double *__iptr) throw () __asm__ ("" "__modf");
  5752.  
  5753.  
  5754.  
  5755.  
  5756. extern long double exp10l (long double __x) throw () __asm__ ("" "exp10"); extern long double __exp10l (long double __x) throw () __asm__ ("" "__exp10");
  5757.  
  5758. extern long double pow10l (long double __x) throw () __asm__ ("" "pow10"); extern long double __pow10l (long double __x) throw () __asm__ ("" "__pow10");
  5759.  
  5760.  
  5761.  
  5762.  
  5763.  
  5764. extern long double expm1l (long double __x) throw () __asm__ ("" "expm1"); extern long double __expm1l (long double __x) throw () __asm__ ("" "__expm1");
  5765.  
  5766.  
  5767. extern long double log1pl (long double __x) throw () __asm__ ("" "log1p"); extern long double __log1pl (long double __x) throw () __asm__ ("" "__log1p");
  5768.  
  5769.  
  5770. extern long double logbl (long double __x) throw () __asm__ ("" "logb"); extern long double __logbl (long double __x) throw () __asm__ ("" "__logb");
  5771.  
  5772.  
  5773.  
  5774.  
  5775.  
  5776.  
  5777. extern long double exp2l (long double __x) throw () __asm__ ("" "exp2"); extern long double __exp2l (long double __x) throw () __asm__ ("" "__exp2");
  5778.  
  5779.  
  5780. extern long double log2l (long double __x) throw () __asm__ ("" "log2"); extern long double __log2l (long double __x) throw () __asm__ ("" "__log2");
  5781.  
  5782.  
  5783.  
  5784.  
  5785.  
  5786.  
  5787.  
  5788.  
  5789. extern long double powl (long double __x, long double __y) throw () __asm__ ("" "pow"); extern long double __powl (long double __x, long double __y) throw () __asm__ ("" "__pow");
  5790.  
  5791.  
  5792. extern long double sqrtl (long double __x) throw () __asm__ ("" "sqrt"); extern long double __sqrtl (long double __x) throw () __asm__ ("" "__sqrt");
  5793.  
  5794.  
  5795.  
  5796.  
  5797.  
  5798. extern long double hypotl (long double __x, long double __y) throw () __asm__ ("" "hypot"); extern long double __hypotl (long double __x, long double __y) throw () __asm__ ("" "__hypot");
  5799.  
  5800.  
  5801.  
  5802.  
  5803.  
  5804.  
  5805. extern long double cbrtl (long double __x) throw () __asm__ ("" "cbrt"); extern long double __cbrtl (long double __x) throw () __asm__ ("" "__cbrt");
  5806.  
  5807.  
  5808.  
  5809.  
  5810.  
  5811.  
  5812.  
  5813.  
  5814. extern long double ceill (long double __x) throw () __asm__ ("" "ceil") __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __asm__ ("" "__ceil") __attribute__ ((__const__));
  5815.  
  5816.  
  5817. extern long double fabsl (long double __x) throw () __asm__ ("" "fabs") __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __asm__ ("" "__fabs") __attribute__ ((__const__));
  5818.  
  5819.  
  5820. extern long double floorl (long double __x) throw () __asm__ ("" "floor") __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __asm__ ("" "__floor") __attribute__ ((__const__));
  5821.  
  5822.  
  5823. extern long double fmodl (long double __x, long double __y) throw () __asm__ ("" "fmod"); extern long double __fmodl (long double __x, long double __y) throw () __asm__ ("" "__fmod");
  5824.  
  5825.  
  5826.  
  5827.  
  5828. extern int __isinfl (long double __value) throw () __asm__ ("" "__isinf") __attribute__ ((__const__));
  5829.  
  5830.  
  5831. extern int __finitel (long double __value) throw () __asm__ ("" "__finite") __attribute__ ((__const__));
  5832.  
  5833.  
  5834.  
  5835.  
  5836.  
  5837. extern int isinfl (long double __value) throw () __asm__ ("" "isinf") __attribute__ ((__const__));
  5838.  
  5839.  
  5840. extern int finitel (long double __value) throw () __asm__ ("" "finite") __attribute__ ((__const__));
  5841.  
  5842.  
  5843. extern long double dreml (long double __x, long double __y) throw () __asm__ ("" "drem"); extern long double __dreml (long double __x, long double __y) throw () __asm__ ("" "__drem");
  5844.  
  5845.  
  5846.  
  5847. extern long double significandl (long double __x) throw () __asm__ ("" "significand"); extern long double __significandl (long double __x) throw () __asm__ ("" "__significand");
  5848.  
  5849.  
  5850.  
  5851.  
  5852.  
  5853. extern long double copysignl (long double __x, long double __y) throw () __asm__ ("" "copysign") __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __asm__ ("" "__copysign") __attribute__ ((__const__));
  5854.  
  5855.  
  5856.  
  5857.  
  5858.  
  5859.  
  5860. extern long double nanl (__const char *__tagb) throw () __asm__ ("" "nan") __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) throw () __asm__ ("" "__nan") __attribute__ ((__const__));
  5861.  
  5862.  
  5863.  
  5864.  
  5865.  
  5866. extern int __isnanl (long double __value) throw () __asm__ ("" "__isnan") __attribute__ ((__const__));
  5867.  
  5868.  
  5869.  
  5870. extern int isnanl (long double __value) throw () __asm__ ("" "isnan") __attribute__ ((__const__));
  5871.  
  5872.  
  5873. extern long double j0l (long double) throw () __asm__ ("" "j0"); extern long double __j0l (long double) throw () __asm__ ("" "__j0");
  5874. extern long double j1l (long double) throw () __asm__ ("" "j1"); extern long double __j1l (long double) throw () __asm__ ("" "__j1");
  5875. extern long double jnl (int, long double) throw () __asm__ ("" "jn"); extern long double __jnl (int, long double) throw () __asm__ ("" "__jn");
  5876. extern long double y0l (long double) throw () __asm__ ("" "y0"); extern long double __y0l (long double) throw () __asm__ ("" "__y0");
  5877. extern long double y1l (long double) throw () __asm__ ("" "y1"); extern long double __y1l (long double) throw () __asm__ ("" "__y1");
  5878. extern long double ynl (int, long double) throw () __asm__ ("" "yn"); extern long double __ynl (int, long double) throw () __asm__ ("" "__yn");
  5879.  
  5880.  
  5881.  
  5882.  
  5883.  
  5884.  
  5885. extern long double erfl (long double) throw () __asm__ ("" "erf"); extern long double __erfl (long double) throw () __asm__ ("" "__erf");
  5886. extern long double erfcl (long double) throw () __asm__ ("" "erfc"); extern long double __erfcl (long double) throw () __asm__ ("" "__erfc");
  5887. extern long double lgammal (long double) throw () __asm__ ("" "lgamma"); extern long double __lgammal (long double) throw () __asm__ ("" "__lgamma");
  5888.  
  5889.  
  5890.  
  5891.  
  5892.  
  5893.  
  5894. extern long double tgammal (long double) throw () __asm__ ("" "tgamma"); extern long double __tgammal (long double) throw () __asm__ ("" "__tgamma");
  5895.  
  5896.  
  5897.  
  5898.  
  5899.  
  5900. extern long double gammal (long double) throw () __asm__ ("" "gamma"); extern long double __gammal (long double) throw () __asm__ ("" "__gamma");
  5901.  
  5902.  
  5903.  
  5904.  
  5905.  
  5906.  
  5907. extern long double lgammal_r (long double, int *__signgamp) throw () __asm__ ("" "lgamma_r"); extern long double __lgammal_r (long double, int *__signgamp) throw () __asm__ ("" "__lgamma_r");
  5908.  
  5909.  
  5910.  
  5911.  
  5912.  
  5913.  
  5914.  
  5915. extern long double rintl (long double __x) throw () __asm__ ("" "rint"); extern long double __rintl (long double __x) throw () __asm__ ("" "__rint");
  5916.  
  5917.  
  5918. extern long double nextafterl (long double __x, long double __y) throw () __asm__ ("" "nextafter") __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) throw () __asm__ ("" "__nextafter") __attribute__ ((__const__));
  5919.  
  5920. extern long double nexttowardl (long double __x, long double __y) throw () __asm__ ("" "nexttoward") __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) throw () __asm__ ("" "__nexttoward") __attribute__ ((__const__));
  5921.  
  5922.  
  5923.  
  5924. extern long double remainderl (long double __x, long double __y) throw () __asm__ ("" "remainder"); extern long double __remainderl (long double __x, long double __y) throw () __asm__ ("" "__remainder");
  5925.  
  5926.  
  5927.  
  5928. extern long double scalbnl (long double __x, int __n) throw () __asm__ ("" "scalbn"); extern long double __scalbnl (long double __x, int __n) throw () __asm__ ("" "__scalbn");
  5929.  
  5930.  
  5931.  
  5932. extern int ilogbl (long double __x) throw () __asm__ ("" "ilogb"); extern int __ilogbl (long double __x) throw () __asm__ ("" "__ilogb");
  5933.  
  5934.  
  5935.  
  5936.  
  5937. extern long double scalblnl (long double __x, long int __n) throw () __asm__ ("" "scalbln"); extern long double __scalblnl (long double __x, long int __n) throw () __asm__ ("" "__scalbln");
  5938.  
  5939.  
  5940.  
  5941. extern long double nearbyintl (long double __x) throw () __asm__ ("" "nearbyint"); extern long double __nearbyintl (long double __x) throw () __asm__ ("" "__nearbyint");
  5942.  
  5943.  
  5944.  
  5945. extern long double roundl (long double __x) throw () __asm__ ("" "round") __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __asm__ ("" "__round") __attribute__ ((__const__));
  5946.  
  5947.  
  5948.  
  5949. extern long double truncl (long double __x) throw () __asm__ ("" "trunc") __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __asm__ ("" "__trunc") __attribute__ ((__const__));
  5950.  
  5951.  
  5952.  
  5953.  
  5954. extern long double remquol (long double __x, long double __y, int *__quo) throw () __asm__ ("" "remquo"); extern long double __remquol (long double __x, long double __y, int *__quo) throw () __asm__ ("" "__remquo");
  5955.  
  5956.  
  5957.  
  5958.  
  5959.  
  5960.  
  5961. extern long int lrintl (long double __x) throw () __asm__ ("" "lrint"); extern long int __lrintl (long double __x) throw () __asm__ ("" "__lrint");
  5962. extern long long int llrintl (long double __x) throw () __asm__ ("" "llrint"); extern long long int __llrintl (long double __x) throw () __asm__ ("" "__llrint");
  5963.  
  5964.  
  5965.  
  5966. extern long int lroundl (long double __x) throw () __asm__ ("" "lround"); extern long int __lroundl (long double __x) throw () __asm__ ("" "__lround");
  5967. extern long long int llroundl (long double __x) throw () __asm__ ("" "llround"); extern long long int __llroundl (long double __x) throw () __asm__ ("" "__llround");
  5968.  
  5969.  
  5970.  
  5971. extern long double fdiml (long double __x, long double __y) throw () __asm__ ("" "fdim"); extern long double __fdiml (long double __x, long double __y) throw () __asm__ ("" "__fdim");
  5972.  
  5973.  
  5974. extern long double fmaxl (long double __x, long double __y) throw () __asm__ ("" "fmax"); extern long double __fmaxl (long double __x, long double __y) throw () __asm__ ("" "__fmax");
  5975.  
  5976.  
  5977. extern long double fminl (long double __x, long double __y) throw () __asm__ ("" "fmin"); extern long double __fminl (long double __x, long double __y) throw () __asm__ ("" "__fmin");
  5978.  
  5979.  
  5980.  
  5981. extern int __fpclassifyl (long double __value) throw () __asm__ ("" "__fpclassify")
  5982.      __attribute__ ((__const__));
  5983.  
  5984.  
  5985. extern int __signbitl (long double __value) throw () __asm__ ("" "__signbit")
  5986.      __attribute__ ((__const__));
  5987.  
  5988.  
  5989.  
  5990. extern long double fmal (long double __x, long double __y, long double __z) throw () __asm__ ("" "fma"); extern long double __fmal (long double __x, long double __y, long double __z) throw () __asm__ ("" "__fma");
  5991.  
  5992.  
  5993.  
  5994.  
  5995.  
  5996.  
  5997.  
  5998.  
  5999. extern long double scalbl (long double __x, long double __n) throw () __asm__ ("" "scalb"); extern long double __scalbl (long double __x, long double __n) throw () __asm__ ("" "__scalb");
  6000. # 146 "/usr/include/math.h" 2 3 4
  6001. # 161 "/usr/include/math.h" 3 4
  6002. extern int signgam;
  6003. # 202 "/usr/include/math.h" 3 4
  6004. enum
  6005.   {
  6006.     FP_NAN,
  6007.  
  6008.     FP_INFINITE,
  6009.  
  6010.     FP_ZERO,
  6011.  
  6012.     FP_SUBNORMAL,
  6013.  
  6014.     FP_NORMAL
  6015.  
  6016.   };
  6017. # 295 "/usr/include/math.h" 3 4
  6018. typedef enum
  6019. {
  6020.   _IEEE_ = -1,
  6021.   _SVID_,
  6022.   _XOPEN_,
  6023.   _POSIX_,
  6024.   _ISOC_
  6025. } _LIB_VERSION_TYPE;
  6026.  
  6027.  
  6028.  
  6029.  
  6030. extern _LIB_VERSION_TYPE _LIB_VERSION;
  6031. # 318 "/usr/include/math.h" 3 4
  6032. struct __exception
  6033.  
  6034.  
  6035.  
  6036.   {
  6037.     int type;
  6038.     char *name;
  6039.     double arg1;
  6040.     double arg2;
  6041.     double retval;
  6042.   };
  6043.  
  6044.  
  6045. extern int matherr (struct __exception *__exc) throw ();
  6046. # 420 "/usr/include/math.h" 3 4
  6047. # 1 "/usr/include/arm-linux-gnueabihf/bits/mathinline.h" 1 3 4
  6048. # 421 "/usr/include/math.h" 2 3 4
  6049. # 476 "/usr/include/math.h" 3 4
  6050. }
  6051. # 12 "src/burn/driver.h" 2
  6052. # 23 "src/burn/driver.h"
  6053. typedef unsigned char UINT8;
  6054. typedef signed char INT8;
  6055. typedef unsigned short UINT16;
  6056. typedef signed short INT16;
  6057. typedef unsigned int UINT32;
  6058. typedef signed int INT32;
  6059.  
  6060.  
  6061.  
  6062.  
  6063. __extension__ typedef unsigned long long UINT64;
  6064. __extension__ typedef long long INT64;
  6065. # 50 "src/burn/driver.h"
  6066. enum {
  6067.  CLEAR_LINE = 0,
  6068.  ASSERT_LINE,
  6069.  HOLD_LINE,
  6070.  PULSE_LINE
  6071. };
  6072.  
  6073.  
  6074.  
  6075.  
  6076.  
  6077.  
  6078.  
  6079.  extern "C" {
  6080.  
  6081.   double BurnTimerGetTime(void);
  6082.  
  6083.   typedef UINT8 (*read8_handler)(UINT32 offset);
  6084.   typedef void (*write8_handler)(UINT32 offset, UINT32 data);
  6085.  
  6086.  
  6087.  
  6088.  
  6089.  
  6090.  
  6091.  
  6092.  }
  6093. # 3 "src/burn/snd/burn_ym2203.h" 2
  6094. extern "C" {
  6095. # 1 "src/burn/snd/ay8910.h" 1
  6096.  
  6097.  
  6098.  
  6099.  
  6100.  
  6101.  
  6102. struct AY8910interface
  6103. {
  6104.  INT32 num;
  6105.  INT32 baseclock;
  6106.  INT32 mixing_level[5];
  6107.     read8_handler portAread[5];
  6108.     read8_handler portBread[5];
  6109.     write8_handler portAwrite[5];
  6110.     write8_handler portBwrite[5];
  6111.  void (*handler[5])(INT32 irq);
  6112. };
  6113.  
  6114. extern INT32 ay8910_index_ym;
  6115.  
  6116. void AY8910_set_clock(INT32 chip, INT32 clock);
  6117. void AY8910Reset(INT32 chip);
  6118.  
  6119. void AY8910Update(INT32 chip, INT16** buffer, INT32 length);
  6120.  
  6121. void AY8910Write(INT32 chip, INT32 a, INT32 data);
  6122. INT32 AY8910Read(INT32 chip);
  6123.  
  6124. void AY8910Reset(INT32 chip);
  6125. void AY8910Exit(INT32 chip);
  6126. INT32 AY8910Init(INT32 chip, INT32 clock, INT32 sample_rate,
  6127.   read8_handler portAread, read8_handler portBread,
  6128.   write8_handler portAwrite, write8_handler portBwrite);
  6129.  
  6130. INT32 AY8910InitYM(INT32 chip, INT32 clock, INT32 sample_rate,
  6131.   read8_handler portAread, read8_handler portBread,
  6132.   write8_handler portAwrite, write8_handler portBwrite,
  6133.   void (*update_callback)(void));
  6134.  
  6135. INT32 AY8910Scan(INT32 nAction, INT32* pnMin);
  6136.  
  6137. INT32 AY8910SetPorts(INT32 chip, read8_handler portAread, read8_handler portBread,
  6138.   write8_handler portAwrite, write8_handler portBwrite);
  6139. # 5 "src/burn/snd/burn_ym2203.h" 2
  6140. # 1 "src/burn/snd/fm.h" 1
  6141. # 61 "src/burn/snd/fm.h"
  6142. void BurnYM2203UpdateRequest(void);
  6143.  
  6144.  
  6145.  
  6146.  
  6147. void BurnYM2608UpdateRequest(void);
  6148.  
  6149.  
  6150.  
  6151.  
  6152. void BurnYM2610UpdateRequest(void);
  6153.  
  6154.  
  6155.  
  6156.  
  6157. void BurnYM2612UpdateRequest(void);
  6158. # 106 "src/burn/snd/fm.h"
  6159. typedef INT16 FMSAMPLE;
  6160.  
  6161.  
  6162.  
  6163.  
  6164.  
  6165. typedef void (*FM_TIMERHANDLER)(int n,int c,int cnt,double stepTime);
  6166. typedef void (*FM_IRQHANDLER)(int n,int irq);
  6167. # 138 "src/burn/snd/fm.h"
  6168. int YM2203Init(int num, int baseclock, int rate,
  6169.                FM_TIMERHANDLER TimerHandler,FM_IRQHANDLER IRQHandler);
  6170.  
  6171.  
  6172.  
  6173.  
  6174. void YM2203Shutdown(void);
  6175.  
  6176.  
  6177.  
  6178.  
  6179. void YM2203ResetChip(int num);
  6180.  
  6181.  
  6182.  
  6183.  
  6184. void YM2203UpdateOne(int num, INT16 *buffer, int length);
  6185.  
  6186.  
  6187.  
  6188.  
  6189.  
  6190. int YM2203Write(int n,int a,unsigned char v);
  6191.  
  6192.  
  6193.  
  6194.  
  6195.  
  6196. unsigned char YM2203Read(int n,int a);
  6197.  
  6198.  
  6199.  
  6200.  
  6201. int YM2203TimerOver(int n, int c);
  6202.  
  6203.  
  6204.  
  6205.  
  6206.  
  6207. int YM2608Init(int num, int baseclock, int rate,
  6208.                void **pcmroma,int *pcmsizea,
  6209.                FM_TIMERHANDLER TimerHandler,FM_IRQHANDLER IRQHandler);
  6210. void YM2608Shutdown(void);
  6211. void YM2608ResetChip(int num);
  6212. void YM2608UpdateOne(int num, INT16 **buffer, int length);
  6213.  
  6214. int YM2608Write(int n, int a,unsigned char v);
  6215. unsigned char YM2608Read(int n,int a);
  6216. int YM2608TimerOver(int n, int c );
  6217.  
  6218.  
  6219.  
  6220.  
  6221. int YM2610Init(int num, int baseclock, int rate,
  6222.                void **pcmroma,int *pcmasize,void **pcmromb,int *pcmbsize,
  6223.                FM_TIMERHANDLER TimerHandler,FM_IRQHANDLER IRQHandler);
  6224. void YM2610SetRom(int num,
  6225.     void *pcmroma,int pcmsizea,void *pcmromb,int pcmsizeb);
  6226. void YM2610Shutdown(void);
  6227. void YM2610ResetChip(int num);
  6228. void YM2610UpdateOne(int num, INT16 **buffer, int length);
  6229.  
  6230. void YM2610BUpdateOne(int num, INT16 **buffer, int length);
  6231.  
  6232.  
  6233. int YM2610Write(int n, int a,unsigned char v);
  6234. unsigned char YM2610Read(int n,int a);
  6235. int YM2610TimerOver(int n, int c );
  6236.  
  6237.  
  6238.  
  6239. int YM2612Init(int num, int baseclock, int rate,
  6240.                FM_TIMERHANDLER TimerHandler,FM_IRQHANDLER IRQHandler);
  6241. void YM2612Shutdown(void);
  6242. void YM2612ResetChip(int num);
  6243. void YM2612UpdateOne(int num, INT16 **buffer, int length);
  6244.  
  6245. int YM2612Write(int n, int a,unsigned char v);
  6246. unsigned char YM2612Read(int n,int a);
  6247. int YM2612TimerOver(int n, int c );
  6248. # 6 "src/burn/snd/burn_ym2203.h" 2
  6249. }
  6250. # 1 "src/burn/timer.h" 1
  6251.  
  6252.  
  6253.  
  6254.  
  6255.  
  6256.  
  6257. extern "C" double BurnTimerGetTime();
  6258.  
  6259.  
  6260. void BurnOPNTimerCallback(INT32 n, INT32 c, INT32 cnt, double stepTime);
  6261. void BurnOPLTimerCallback(INT32 c, double period);
  6262. void BurnYMFTimerCallback(INT32 n, INT32 c, double period);
  6263.  
  6264.  
  6265. void BurnTimerSetRetrig(INT32 c, double period);
  6266. void BurnTimerSetOneshot(INT32 c, double period);
  6267.  
  6268. extern double dTime;
  6269.  
  6270. void BurnTimerExit();
  6271. void BurnTimerReset();
  6272. INT32 BurnTimerInit(INT32 (*pOverCallback)(INT32, INT32), double (*pTimeCallback)());
  6273. INT32 BurnTimerAttachSek(INT32 nClockspeed);
  6274. INT32 BurnTimerAttachZet(INT32 nClockspeed);
  6275. INT32 BurnTimerAttachM6809(INT32 nClockspeed);
  6276. INT32 BurnTimerAttachHD6309(INT32 nClockspeed);
  6277. INT32 BurnTimerAttachM6800(INT32 nClockspeed);
  6278. INT32 BurnTimerAttachHD63701(INT32 nClockspeed);
  6279. INT32 BurnTimerAttachM6803(INT32 nClockspeed);
  6280. INT32 BurnTimerAttachM6502(INT32 nClockspeed);
  6281. INT32 BurnTimerAttachSh2(INT32 nClockspeed);
  6282. INT32 BurnTimerAttachH6280(INT32 nClockspeed);
  6283. void BurnTimerScan(INT32 nAction, INT32* pnMin);
  6284. INT32 BurnTimerUpdate(INT32 nCycles);
  6285. void BurnTimerUpdateEnd();
  6286. void BurnTimerEndFrame(INT32 nCycles);
  6287. # 8 "src/burn/snd/burn_ym2203.h" 2
  6288.  
  6289. extern "C" void BurnYM2203UpdateRequest();
  6290.  
  6291. INT32 BurnYM2203Init(INT32 num, INT32 nClockFrequency, FM_IRQHANDLER IRQCallback, INT32 (*StreamCallback)(INT32), double (*GetTimeCallback)(), INT32 bAddSignal);
  6292. void BurnYM2203SetVolumeShift(INT32 Shift);
  6293. void BurnYM2203Reset();
  6294. void BurnYM2203Exit();
  6295. extern void (*BurnYM2203Update)(INT16* pSoundBuf, INT32 nSegmentEnd);
  6296. void BurnYM2203Scan(INT32 nAction, INT32* pnMin);
  6297. # 11 "src/burn/drv/dataeast/d_cninja.cpp" 2
  6298. # 1 "src/burn/snd/burn_ym2151.h" 1
  6299.  
  6300.  
  6301. extern "C" {
  6302. # 1 "src/burn/snd/ym2151.h" 1
  6303. # 39 "src/burn/snd/ym2151.h"
  6304.  typedef INT16 SAMP;
  6305. # 52 "src/burn/snd/ym2151.h"
  6306. int YM2151Init(int num, int clock, int rate);
  6307.  
  6308.  
  6309. void YM2151Shutdown(void);
  6310.  
  6311.  
  6312. void YM2151ResetChip(int num);
  6313. # 67 "src/burn/snd/ym2151.h"
  6314. void YM2151UpdateOne(int num, INT16 **buffers, int length);
  6315.  
  6316.  
  6317. void YM2151WriteReg(int n, int r, int v);
  6318.  
  6319.  
  6320. int YM2151ReadStatus(int n);
  6321.  
  6322.  
  6323. void YM2151SetIrqHandler(int n, void (*handler)(int irq));
  6324.  
  6325.  
  6326. void YM2151SetPortWriteHandler(int n, write8_handler handler);
  6327. # 5 "src/burn/snd/burn_ym2151.h" 2
  6328. }
  6329.  
  6330. INT32 BurnYM2151Init(INT32 nClockFrequency, float nVolume);
  6331. void BurnYM2151Reset();
  6332. void BurnYM2151Exit();
  6333. extern void (*BurnYM2151Render)(INT16* pSoundBuf, INT32 nSegmentLength);
  6334. void BurnYM2151Scan(INT32 nAction);
  6335.  
  6336. static inline void BurnYM2151SelectRegister(const UINT8 nRegister)
  6337. {
  6338.  
  6339.  
  6340.  
  6341.  
  6342.  extern UINT32 nBurnCurrentYM2151Register;
  6343.  
  6344.  nBurnCurrentYM2151Register = nRegister;
  6345. }
  6346.  
  6347. static inline void BurnYM2151WriteRegister(const UINT8 nValue)
  6348. {
  6349.  
  6350.  
  6351.  
  6352.  
  6353.  extern UINT32 nBurnCurrentYM2151Register;
  6354.  extern UINT8 BurnYM2151Registers[0x0100];
  6355.  
  6356.  BurnYM2151Registers[nBurnCurrentYM2151Register] = nValue;
  6357.  YM2151WriteReg(0, nBurnCurrentYM2151Register, nValue);
  6358. }
  6359. # 12 "src/burn/drv/dataeast/d_cninja.cpp" 2
  6360. # 1 "src/burn/snd/msm6295.h" 1
  6361.  
  6362.  
  6363.  
  6364.  
  6365. INT32 MSM6295Init(INT32 nChip, INT32 nSamplerate, float fMaxVolume, bool bAddSignal);
  6366. void MSM6295Reset(INT32 nChip);
  6367. void MSM6295Exit(INT32 nChip);
  6368.  
  6369. INT32 MSM6295Render(INT32 nChip, INT16* pSoundBuf, INT32 nSegmenLength);
  6370. void MSM6295Command(INT32 nChip, UINT8 nCommand);
  6371. INT32 MSM6295Scan(INT32 nChip, INT32 nAction);
  6372.  
  6373. extern UINT8* MSM6295ROM;
  6374. extern UINT8* MSM6295SampleInfo[(2)][4];
  6375. extern UINT8* MSM6295SampleData[(2)][4];
  6376.  
  6377. inline static UINT32 MSM6295ReadStatus(const INT32 nChip)
  6378. {
  6379.  
  6380.  
  6381.  
  6382.  
  6383.  
  6384.  
  6385.  extern UINT32 nMSM6295Status[(2)];
  6386.  
  6387.  return nMSM6295Status[nChip];
  6388. }
  6389. # 13 "src/burn/drv/dataeast/d_cninja.cpp" 2
  6390. # 1 "src/burn/timer.h" 1
  6391.  
  6392.  
  6393.  
  6394.  
  6395.  
  6396.  
  6397. extern "C" double BurnTimerGetTime();
  6398.  
  6399.  
  6400. void BurnOPNTimerCallback(INT32 n, INT32 c, INT32 cnt, double stepTime);
  6401. void BurnOPLTimerCallback(INT32 c, double period);
  6402. void BurnYMFTimerCallback(INT32 n, INT32 c, double period);
  6403.  
  6404.  
  6405. void BurnTimerSetRetrig(INT32 c, double period);
  6406. void BurnTimerSetOneshot(INT32 c, double period);
  6407.  
  6408. extern double dTime;
  6409.  
  6410. void BurnTimerExit();
  6411. void BurnTimerReset();
  6412. INT32 BurnTimerInit(INT32 (*pOverCallback)(INT32, INT32), double (*pTimeCallback)());
  6413. INT32 BurnTimerAttachSek(INT32 nClockspeed);
  6414. INT32 BurnTimerAttachZet(INT32 nClockspeed);
  6415. INT32 BurnTimerAttachM6809(INT32 nClockspeed);
  6416. INT32 BurnTimerAttachHD6309(INT32 nClockspeed);
  6417. INT32 BurnTimerAttachM6800(INT32 nClockspeed);
  6418. INT32 BurnTimerAttachHD63701(INT32 nClockspeed);
  6419. INT32 BurnTimerAttachM6803(INT32 nClockspeed);
  6420. INT32 BurnTimerAttachM6502(INT32 nClockspeed);
  6421. INT32 BurnTimerAttachSh2(INT32 nClockspeed);
  6422. INT32 BurnTimerAttachH6280(INT32 nClockspeed);
  6423. void BurnTimerScan(INT32 nAction, INT32* pnMin);
  6424. INT32 BurnTimerUpdate(INT32 nCycles);
  6425. void BurnTimerUpdateEnd();
  6426. void BurnTimerEndFrame(INT32 nCycles);
  6427. # 14 "src/burn/drv/dataeast/d_cninja.cpp" 2
  6428.  
  6429. static UINT8 *AllMem;
  6430. static UINT8 *MemEnd;
  6431. static UINT8 *AllRam;
  6432. static UINT8 *RamEnd;
  6433. static UINT8 *Drv68KROM;
  6434. static UINT8 *DrvZ80ROM;
  6435. static UINT8 *DrvHucROM;
  6436. static UINT8 *DrvGfxROM0;
  6437. static UINT8 *DrvGfxROM1;
  6438. static UINT8 *DrvGfxROM2;
  6439. static UINT8 *DrvGfxROM3;
  6440. static UINT8 *DrvGfxROM4;
  6441. static UINT8 *DrvSndROM0;
  6442. static UINT8 *DrvSndROM1;
  6443. static UINT8 *Drv68KRAM;
  6444. static UINT8 *DrvHucRAM;
  6445. static UINT8 *DrvPalRAM;
  6446. static UINT8 *DrvSprRAM;
  6447. static UINT8 *DrvSprRAM1;
  6448. static UINT8 *DrvSprBuf;
  6449. static UINT8 *DrvSprBuf1;
  6450. static UINT8 *DrvPrtRAM;
  6451. static UINT8 *DrvZ80RAM;
  6452.  
  6453. static UINT32 *DrvPalette;
  6454. static UINT8 DrvRecalc;
  6455.  
  6456. static INT16 *SoundBuffer;
  6457.  
  6458. static UINT8 *soundlatch;
  6459. static UINT8 *flipscreen;
  6460.  
  6461. static UINT8 DrvJoy1[16];
  6462. static UINT8 DrvJoy2[16];
  6463. static UINT8 DrvDips[3];
  6464. static UINT8 DrvReset;
  6465. static UINT16 DrvInputs[3];
  6466.  
  6467. static INT32 scanline;
  6468. static INT32 irq_mask;
  6469. static INT32 irq_timer;
  6470.  
  6471. static INT32 DrvOkiBank;
  6472.  
  6473. static INT32 has_z80 = 0;
  6474.  
  6475. static struct BurnInputInfo DrvInputList[] = {
  6476.  {"P1 Coin", (1), DrvJoy2 + 0, "p1 coin" },
  6477.  {"P1 Start", (1), DrvJoy1 + 7, "p1 start" },
  6478.  {"P1 Up", (1), DrvJoy1 + 0, "p1 up" },
  6479.  {"P1 Down", (1), DrvJoy1 + 1, "p1 down" },
  6480.  {"P1 Left", (1), DrvJoy1 + 2, "p1 left" },
  6481.  {"P1 Right", (1), DrvJoy1 + 3, "p1 right" },
  6482.  {"P1 Button 1", (1), DrvJoy1 + 4, "p1 fire 1" },
  6483.  {"P1 Button 2", (1), DrvJoy1 + 5, "p1 fire 2" },
  6484.  
  6485.  {"P2 Coin", (1), DrvJoy2 + 1, "p2 coin" },
  6486.  {"P2 Start", (1), DrvJoy1 + 15, "p2 start" },
  6487.  {"P2 Up", (1), DrvJoy1 + 8, "p2 up" },
  6488.  {"P2 Down", (1), DrvJoy1 + 9, "p2 down" },
  6489.  {"P2 Left", (1), DrvJoy1 + 10, "p2 left" },
  6490.  {"P2 Right", (1), DrvJoy1 + 11, "p2 right" },
  6491.  {"P2 Button 1", (1), DrvJoy1 + 12, "p2 fire 1" },
  6492.  {"P2 Button 2", (1), DrvJoy1 + 13, "p2 fire 2" },
  6493.  
  6494.  {"Reset", (1), &DrvReset, "reset" },
  6495.  {"Service", (1), DrvJoy2 + 2, "service" },
  6496.  {"Dip A", (9), DrvDips + 0, "dip" },
  6497.  {"Dip B", (9), DrvDips + 1, "dip" },
  6498. };
  6499.  
  6500. static INT32 DrvInputInfo(struct BurnInputInfo* pii, UINT32 i) { if (i >= sizeof(DrvInputList) / sizeof(DrvInputList[0])) { return 1; } if (pii) { *pii = DrvInputList[i]; } return 0; }
  6501.  
  6502. static struct BurnInputInfo Robocop2InputList[] = {
  6503.  {"P1 Coin", (1), DrvJoy2 + 0, "p1 coin" },
  6504.  {"P1 Start", (1), DrvJoy1 + 7, "p1 start" },
  6505.  {"P1 Up", (1), DrvJoy1 + 0, "p1 up" },
  6506.  {"P1 Down", (1), DrvJoy1 + 1, "p1 down" },
  6507.  {"P1 Left", (1), DrvJoy1 + 2, "p1 left" },
  6508.  {"P1 Right", (1), DrvJoy1 + 3, "p1 right" },
  6509.  {"P1 Button 1", (1), DrvJoy1 + 4, "p1 fire 1" },
  6510.  {"P1 Button 2", (1), DrvJoy1 + 5, "p1 fire 2" },
  6511.  {"P1 Button 3", (1), DrvJoy1 + 6, "p1 fire 3" },
  6512.  
  6513.  {"P2 Coin", (1), DrvJoy2 + 1, "p2 coin" },
  6514.  {"P2 Start", (1), DrvJoy1 + 15, "p2 start" },
  6515.  {"P2 Up", (1), DrvJoy1 + 8, "p2 up" },
  6516.  {"P2 Down", (1), DrvJoy1 + 9, "p2 down" },
  6517.  {"P2 Left", (1), DrvJoy1 + 10, "p2 left" },
  6518.  {"P2 Right", (1), DrvJoy1 + 11, "p2 right" },
  6519.  {"P2 Button 1", (1), DrvJoy1 + 12, "p2 fire 1" },
  6520.  {"P2 Button 2", (1), DrvJoy1 + 13, "p2 fire 2" },
  6521.  {"P2 Button 3", (1), DrvJoy1 + 14, "p2 fire 3" },
  6522.  
  6523.  {"Reset", (1), &DrvReset, "reset" },
  6524.  {"Service", (1), DrvJoy2 + 2, "service" },
  6525.  {"Dip A", (9), DrvDips + 0, "dip" },
  6526.  {"Dip B", (9), DrvDips + 1, "dip" },
  6527.  {"Dip C", (9), DrvDips + 2, "dip" },
  6528. };
  6529.  
  6530. static INT32 Robocop2InputInfo(struct BurnInputInfo* pii, UINT32 i) { if (i >= sizeof(Robocop2InputList) / sizeof(Robocop2InputList[0])) { return 1; } if (pii) { *pii = Robocop2InputList[i]; } return 0; }
  6531.  
  6532. static struct BurnDIPInfo CninjaDIPList[]=
  6533. {
  6534.  {0x12, 0xff, 0xff, 0xff, __null },
  6535.  {0x13, 0xff, 0xff, 0x7f, __null },
  6536.  
  6537.  {0 , 0xfe, 0 , 8, "Coin A" },
  6538.  {0x12, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
  6539.  {0x12, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
  6540.  {0x12, 0x01, 0x07, 0x07, "1 Coin  1 Credits" },
  6541.  {0x12, 0x01, 0x07, 0x06, "1 Coin  2 Credits" },
  6542.  {0x12, 0x01, 0x07, 0x05, "1 Coin  3 Credits" },
  6543.  {0x12, 0x01, 0x07, 0x04, "1 Coin  4 Credits" },
  6544.  {0x12, 0x01, 0x07, 0x03, "1 Coin  5 Credits" },
  6545.  {0x12, 0x01, 0x07, 0x02, "1 Coin  6 Credits" },
  6546.  
  6547.  {0 , 0xfe, 0 , 8, "Coin B" },
  6548.  {0x12, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
  6549.  {0x12, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
  6550.  {0x12, 0x01, 0x38, 0x38, "1 Coin  1 Credits" },
  6551.  {0x12, 0x01, 0x38, 0x30, "1 Coin  2 Credits" },
  6552.  {0x12, 0x01, 0x38, 0x28, "1 Coin  3 Credits" },
  6553.  {0x12, 0x01, 0x38, 0x20, "1 Coin  4 Credits" },
  6554.  {0x12, 0x01, 0x38, 0x18, "1 Coin  5 Credits" },
  6555.  {0x12, 0x01, 0x38, 0x10, "1 Coin  6 Credits" },
  6556.  
  6557.  {0 , 0xfe, 0 , 2, "Flip Screen" },
  6558.  {0x12, 0x01, 0x40, 0x40, "Off" },
  6559.  {0x12, 0x01, 0x40, 0x00, "On" },
  6560.  
  6561.  {0 , 0xfe, 0 , 4, "Lives" },
  6562.  {0x13, 0x01, 0x03, 0x01, "1" },
  6563.  {0x13, 0x01, 0x03, 0x00, "2" },
  6564.  {0x13, 0x01, 0x03, 0x03, "3" },
  6565.  {0x13, 0x01, 0x03, 0x02, "4" },
  6566.  
  6567.  {0 , 0xfe, 0 , 4, "Difficulty" },
  6568.  {0x13, 0x01, 0x0c, 0x08, "Easy" },
  6569.  {0x13, 0x01, 0x0c, 0x0c, "Normal" },
  6570.  {0x13, 0x01, 0x0c, 0x04, "Hard" },
  6571.  {0x13, 0x01, 0x0c, 0x00, "Hardest" },
  6572.  
  6573.  {0 , 0xfe, 0 , 2, "Restore Life Meter" },
  6574.  {0x13, 0x01, 0x10, 0x10, "Off" },
  6575.  {0x13, 0x01, 0x10, 0x00, "On" },
  6576.  
  6577.  {0 , 0xfe, 0 , 2, "Demo Sounds" },
  6578.  {0x13, 0x01, 0x80, 0x80, "Off" },
  6579.  {0x13, 0x01, 0x80, 0x00, "On" },
  6580. };
  6581.  
  6582. static INT32 CninjaDIPInfo(struct BurnDIPInfo* pdi, UINT32 i) { if (i >= sizeof(CninjaDIPList) / sizeof(CninjaDIPList[0])) { return 1; } if (pdi) { *pdi = CninjaDIPList[i]; } return 0; }
  6583.  
  6584. static struct BurnDIPInfo CninjauDIPList[]=
  6585. {
  6586.  {0x12, 0xff, 0xff, 0xff, __null },
  6587.  {0x13, 0xff, 0xff, 0x7f, __null },
  6588.  
  6589.  {0 , 0xfe, 0 , 8, "Coin A" },
  6590.  {0x12, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
  6591.  {0x12, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
  6592.  {0x12, 0x01, 0x07, 0x07, "1 Coin  1 Credits" },
  6593.  {0x12, 0x01, 0x07, 0x06, "1 Coin  2 Credits" },
  6594.  {0x12, 0x01, 0x07, 0x05, "1 Coin  3 Credits" },
  6595.  {0x12, 0x01, 0x07, 0x04, "1 Coin  4 Credits" },
  6596.  {0x12, 0x01, 0x07, 0x03, "1 Coin  5 Credits" },
  6597.  {0x12, 0x01, 0x07, 0x02, "1 Coin  6 Credits" },
  6598.  
  6599.  {0 , 0xfe, 0 , 8, "Coin B" },
  6600.  {0x12, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
  6601.  {0x12, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
  6602.  {0x12, 0x01, 0x38, 0x38, "1 Coin  1 Credits" },
  6603.  {0x12, 0x01, 0x38, 0x30, "1 Coin  2 Credits" },
  6604.  {0x12, 0x01, 0x38, 0x28, "1 Coin  3 Credits" },
  6605.  {0x12, 0x01, 0x38, 0x20, "1 Coin  4 Credits" },
  6606.  {0x12, 0x01, 0x38, 0x18, "1 Coin  5 Credits" },
  6607.  {0x12, 0x01, 0x38, 0x10, "1 Coin  6 Credits" },
  6608.  
  6609.  {0 , 0xfe, 0 , 2, "Flip Screen" },
  6610.  {0x12, 0x01, 0x40, 0x40, "Off" },
  6611.  {0x12, 0x01, 0x40, 0x00, "On" },
  6612.  
  6613.  {0 , 0xfe, 0 , 2, "Credit(s) to Start" },
  6614.  {0x12, 0x01, 0x80, 0x80, "1" },
  6615.  {0x12, 0x01, 0x80, 0x00, "2" },
  6616.  
  6617.  {0 , 0xfe, 0 , 4, "Lives" },
  6618.  {0x13, 0x01, 0x03, 0x01, "1" },
  6619.  {0x13, 0x01, 0x03, 0x00, "2" },
  6620.  {0x13, 0x01, 0x03, 0x03, "3" },
  6621.  {0x13, 0x01, 0x03, 0x02, "4" },
  6622.  
  6623.  {0 , 0xfe, 0 , 4, "Difficulty" },
  6624.  {0x13, 0x01, 0x0c, 0x08, "Easy" },
  6625.  {0x13, 0x01, 0x0c, 0x0c, "Normal" },
  6626.  {0x13, 0x01, 0x0c, 0x04, "Hard" },
  6627.  {0x13, 0x01, 0x0c, 0x00, "Hardest" },
  6628.  
  6629.  {0 , 0xfe, 0 , 2, "Restore Life Meter" },
  6630.  {0x13, 0x01, 0x10, 0x10, "Off" },
  6631.  {0x13, 0x01, 0x10, 0x00, "On" },
  6632.  
  6633.  {0 , 0xfe, 0 , 2, "Demo Sounds" },
  6634.  {0x13, 0x01, 0x80, 0x80, "Off" },
  6635.  {0x13, 0x01, 0x80, 0x00, "On" },
  6636. };
  6637.  
  6638. static INT32 CninjauDIPInfo(struct BurnDIPInfo* pdi, UINT32 i) { if (i >= sizeof(CninjauDIPList) / sizeof(CninjauDIPList[0])) { return 1; } if (pdi) { *pdi = CninjauDIPList[i]; } return 0; }
  6639.  
  6640. static struct BurnDIPInfo MutantfDIPList[]=
  6641. {
  6642.  {0x12, 0xff, 0xff, 0xff, __null },
  6643.  {0x13, 0xff, 0xff, 0x7f, __null },
  6644.  
  6645.  {0 , 0xfe, 0 , 8, "Coin A" },
  6646.  {0x12, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
  6647.  {0x12, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
  6648.  {0x12, 0x01, 0x07, 0x07, "1 Coin  1 Credits" },
  6649.  {0x12, 0x01, 0x07, 0x06, "1 Coin  2 Credits" },
  6650.  {0x12, 0x01, 0x07, 0x05, "1 Coin  3 Credits" },
  6651.  {0x12, 0x01, 0x07, 0x04, "1 Coin  4 Credits" },
  6652.  {0x12, 0x01, 0x07, 0x03, "1 Coin  5 Credits" },
  6653.  {0x12, 0x01, 0x07, 0x02, "1 Coin  6 Credits" },
  6654.  
  6655.  {0 , 0xfe, 0 , 8, "Coin B" },
  6656.  {0x12, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
  6657.  {0x12, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
  6658.  {0x12, 0x01, 0x38, 0x38, "1 Coin  1 Credits" },
  6659.  {0x12, 0x01, 0x38, 0x30, "1 Coin  2 Credits" },
  6660.  {0x12, 0x01, 0x38, 0x28, "1 Coin  3 Credits" },
  6661.  {0x12, 0x01, 0x38, 0x20, "1 Coin  4 Credits" },
  6662.  {0x12, 0x01, 0x38, 0x18, "1 Coin  5 Credits" },
  6663.  {0x12, 0x01, 0x38, 0x10, "1 Coin  6 Credits" },
  6664.  
  6665.  {0 , 0xfe, 0 , 2, "Flip Screen" },
  6666.  {0x12, 0x01, 0x40, 0x40, "Off" },
  6667.  {0x12, 0x01, 0x40, 0x00, "On" },
  6668.  
  6669.  {0 , 0xfe, 0 , 2, "Credit(s) to Start" },
  6670.  {0x12, 0x01, 0x80, 0x80, "1" },
  6671.  {0x12, 0x01, 0x80, 0x00, "2" },
  6672.  
  6673.  {0 , 0xfe, 0 , 4, "Timer Decrement" },
  6674.  {0x13, 0x01, 0x03, 0x01, "Slow" },
  6675.  {0x13, 0x01, 0x03, 0x03, "Normal" },
  6676.  {0x13, 0x01, 0x03, 0x02, "Fast" },
  6677.  {0x13, 0x01, 0x03, 0x00, "Very Fast" },
  6678.  
  6679.  {0 , 0xfe, 0 , 4, "Difficulty" },
  6680.  {0x13, 0x01, 0x0c, 0x08, "Easy" },
  6681.  {0x13, 0x01, 0x0c, 0x0c, "Normal" },
  6682.  {0x13, 0x01, 0x0c, 0x04, "Hard" },
  6683.  {0x13, 0x01, 0x0c, 0x00, "Hardest" },
  6684.  
  6685.  {0 , 0xfe, 0 , 4, "Life Per Stage" },
  6686.  {0x13, 0x01, 0x30, 0x00, "Least" },
  6687.  {0x13, 0x01, 0x30, 0x10, "Little" },
  6688.  {0x13, 0x01, 0x30, 0x20, "Less" },
  6689.  {0x13, 0x01, 0x30, 0x30, "Normal" },
  6690.  
  6691.  {0 , 0xfe, 0 , 2, "Continues" },
  6692.  {0x13, 0x01, 0x40, 0x00, "Off" },
  6693.  {0x13, 0x01, 0x40, 0x40, "On" },
  6694.  
  6695.  {0 , 0xfe, 0 , 2, "Demo Sounds" },
  6696.  {0x13, 0x01, 0x80, 0x80, "Off" },
  6697.  {0x13, 0x01, 0x80, 0x00, "On" },
  6698. };
  6699.  
  6700. static INT32 MutantfDIPInfo(struct BurnDIPInfo* pdi, UINT32 i) { if (i >= sizeof(MutantfDIPList) / sizeof(MutantfDIPList[0])) { return 1; } if (pdi) { *pdi = MutantfDIPList[i]; } return 0; }
  6701.  
  6702. static struct BurnDIPInfo EdrandyDIPList[]=
  6703. {
  6704.  {0x12, 0xff, 0xff, 0xbf, __null },
  6705.  {0x13, 0xff, 0xff, 0x7f, __null },
  6706.  
  6707.  {0 , 0xfe, 0 , 8, "Coin A" },
  6708.  {0x12, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
  6709.  {0x12, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
  6710.  {0x12, 0x01, 0x07, 0x07, "1 Coin  1 Credits" },
  6711.  {0x12, 0x01, 0x07, 0x06, "1 Coin  2 Credits" },
  6712.  {0x12, 0x01, 0x07, 0x05, "1 Coin  3 Credits" },
  6713.  {0x12, 0x01, 0x07, 0x04, "1 Coin  4 Credits" },
  6714.  {0x12, 0x01, 0x07, 0x03, "1 Coin  5 Credits" },
  6715.  {0x12, 0x01, 0x07, 0x02, "1 Coin  6 Credits" },
  6716.  
  6717.  {0 , 0xfe, 0 , 8, "Coin B" },
  6718.  {0x12, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
  6719.  {0x12, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
  6720.  {0x12, 0x01, 0x38, 0x38, "1 Coin  1 Credits" },
  6721.  {0x12, 0x01, 0x38, 0x30, "1 Coin  2 Credits" },
  6722.  {0x12, 0x01, 0x38, 0x28, "1 Coin  3 Credits" },
  6723.  {0x12, 0x01, 0x38, 0x20, "1 Coin  4 Credits" },
  6724.  {0x12, 0x01, 0x38, 0x18, "1 Coin  5 Credits" },
  6725.  {0x12, 0x01, 0x38, 0x10, "1 Coin  6 Credits" },
  6726.  
  6727.  {0 , 0xfe, 0 , 2, "Flip Screen" },
  6728.  {0x12, 0x01, 0x40, 0x00, "Off" },
  6729.  {0x12, 0x01, 0x40, 0x40, "On" },
  6730.  
  6731.  {0 , 0xfe, 0 , 2, "Credit(s) to Start" },
  6732.  {0x12, 0x01, 0x80, 0x80, "1" },
  6733.  {0x12, 0x01, 0x80, 0x00, "2" },
  6734.  
  6735.  {0 , 0xfe, 0 , 4, "Player's Power" },
  6736.  {0x13, 0x01, 0x03, 0x01, "Very Low" },
  6737.  {0x13, 0x01, 0x03, 0x00, "Low" },
  6738.  {0x13, 0x01, 0x03, 0x03, "Medium" },
  6739.  {0x13, 0x01, 0x03, 0x02, "High" },
  6740.  
  6741.  {0 , 0xfe, 0 , 4, "Difficulty" },
  6742.  {0x13, 0x01, 0x0c, 0x08, "Easy" },
  6743.  {0x13, 0x01, 0x0c, 0x0c, "Normal" },
  6744.  {0x13, 0x01, 0x0c, 0x04, "Hard" },
  6745.  {0x13, 0x01, 0x0c, 0x00, "Hardest" },
  6746.  
  6747.  {0 , 0xfe, 0 , 2, "Continues" },
  6748.  {0x13, 0x01, 0x40, 0x00, "Off" },
  6749.  {0x13, 0x01, 0x40, 0x40, "On" },
  6750.  
  6751.  {0 , 0xfe, 0 , 2, "Demo Sounds" },
  6752.  {0x13, 0x01, 0x80, 0x80, "Off" },
  6753.  {0x13, 0x01, 0x80, 0x00, "On" },
  6754. };
  6755.  
  6756. static INT32 EdrandyDIPInfo(struct BurnDIPInfo* pdi, UINT32 i) { if (i >= sizeof(EdrandyDIPList) / sizeof(EdrandyDIPList[0])) { return 1; } if (pdi) { *pdi = EdrandyDIPList[i]; } return 0; }
  6757.  
  6758. static struct BurnDIPInfo EdrandcDIPList[]=
  6759. {
  6760.  {0x12, 0xff, 0xff, 0xbf, __null },
  6761.  {0x13, 0xff, 0xff, 0x7f, __null },
  6762.  
  6763.  {0 , 0xfe, 0 , 8, "Coin A" },
  6764.  {0x12, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
  6765.  {0x12, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
  6766.  {0x12, 0x01, 0x07, 0x07, "1 Coin  1 Credits" },
  6767.  {0x12, 0x01, 0x07, 0x06, "1 Coin  2 Credits" },
  6768.  {0x12, 0x01, 0x07, 0x05, "1 Coin  3 Credits" },
  6769.  {0x12, 0x01, 0x07, 0x04, "1 Coin  4 Credits" },
  6770.  {0x12, 0x01, 0x07, 0x03, "1 Coin  5 Credits" },
  6771.  {0x12, 0x01, 0x07, 0x02, "1 Coin  6 Credits" },
  6772.  
  6773.  {0 , 0xfe, 0 , 8, "Coin B" },
  6774.  {0x12, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
  6775.  {0x12, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
  6776.  {0x12, 0x01, 0x38, 0x38, "1 Coin  1 Credits" },
  6777.  {0x12, 0x01, 0x38, 0x30, "1 Coin  2 Credits" },
  6778.  {0x12, 0x01, 0x38, 0x28, "1 Coin  3 Credits" },
  6779.  {0x12, 0x01, 0x38, 0x20, "1 Coin  4 Credits" },
  6780.  {0x12, 0x01, 0x38, 0x18, "1 Coin  5 Credits" },
  6781.  {0x12, 0x01, 0x38, 0x10, "1 Coin  6 Credits" },
  6782.  
  6783.  {0 , 0xfe, 0 , 2, "Flip Screen" },
  6784.  {0x12, 0x01, 0x40, 0x00, "Off" },
  6785.  {0x12, 0x01, 0x40, 0x40, "On" },
  6786.  
  6787.  {0 , 0xfe, 0 , 2, "Unknown" },
  6788.  {0x12, 0x01, 0x80, 0x80, "Off" },
  6789.  {0x12, 0x01, 0x80, 0x00, "On" },
  6790.  
  6791.  {0 , 0xfe, 0 , 4, "Player's Power" },
  6792.  {0x13, 0x01, 0x03, 0x01, "Very Low" },
  6793.  {0x13, 0x01, 0x03, 0x00, "Low" },
  6794.  {0x13, 0x01, 0x03, 0x03, "Medium" },
  6795.  {0x13, 0x01, 0x03, 0x02, "High" },
  6796.  
  6797.  {0 , 0xfe, 0 , 4, "Difficulty" },
  6798.  {0x13, 0x01, 0x0c, 0x08, "Easy" },
  6799.  {0x13, 0x01, 0x0c, 0x0c, "Normal" },
  6800.  {0x13, 0x01, 0x0c, 0x04, "Hard" },
  6801.  {0x13, 0x01, 0x0c, 0x00, "Hardest" },
  6802.  
  6803.  {0 , 0xfe, 0 , 2, "Continues" },
  6804.  {0x13, 0x01, 0x40, 0x00, "Off" },
  6805.  {0x13, 0x01, 0x40, 0x40, "On" },
  6806.  
  6807.  {0 , 0xfe, 0 , 2, "Demo Sounds" },
  6808.  {0x13, 0x01, 0x80, 0x80, "Off" },
  6809.  {0x13, 0x01, 0x80, 0x00, "On" },
  6810. };
  6811.  
  6812. static INT32 EdrandcDIPInfo(struct BurnDIPInfo* pdi, UINT32 i) { if (i >= sizeof(EdrandcDIPList) / sizeof(EdrandcDIPList[0])) { return 1; } if (pdi) { *pdi = EdrandcDIPList[i]; } return 0; }
  6813.  
  6814. static struct BurnDIPInfo Robocop2DIPList[]=
  6815. {
  6816.  {0x14, 0xff, 0xff, 0xbf, __null },
  6817.  {0x15, 0xff, 0xff, 0x7f, __null },
  6818.  {0x16, 0xff, 0xff, 0xff, __null },
  6819.  
  6820.  {0 , 0xfe, 0 , 8, "Coin A" },
  6821.  {0x14, 0x01, 0x07, 0x00, "3 Coins 1 Credits" },
  6822.  {0x14, 0x01, 0x07, 0x01, "2 Coins 1 Credits" },
  6823.  {0x14, 0x01, 0x07, 0x07, "1 Coin  1 Credits" },
  6824.  {0x14, 0x01, 0x07, 0x06, "1 Coin  2 Credits" },
  6825.  {0x14, 0x01, 0x07, 0x05, "1 Coin  3 Credits" },
  6826.  {0x14, 0x01, 0x07, 0x04, "1 Coin  4 Credits" },
  6827.  {0x14, 0x01, 0x07, 0x03, "1 Coin  5 Credits" },
  6828.  {0x14, 0x01, 0x07, 0x02, "1 Coin  6 Credits" },
  6829.  
  6830.  {0 , 0xfe, 0 , 8, "Coin B" },
  6831.  {0x14, 0x01, 0x38, 0x00, "3 Coins 1 Credits" },
  6832.  {0x14, 0x01, 0x38, 0x08, "2 Coins 1 Credits" },
  6833.  {0x14, 0x01, 0x38, 0x38, "1 Coin  1 Credits" },
  6834.  {0x14, 0x01, 0x38, 0x30, "1 Coin  2 Credits" },
  6835.  {0x14, 0x01, 0x38, 0x28, "1 Coin  3 Credits" },
  6836.  {0x14, 0x01, 0x38, 0x20, "1 Coin  4 Credits" },
  6837.  {0x14, 0x01, 0x38, 0x18, "1 Coin  5 Credits" },
  6838.  {0x14, 0x01, 0x38, 0x10, "1 Coin  6 Credits" },
  6839.  
  6840.  {0 , 0xfe, 0 , 2, "Flip Screen" },
  6841.  {0x14, 0x01, 0x40, 0x00, "Off" },
  6842.  {0x14, 0x01, 0x40, 0x40, "On" },
  6843.  
  6844.  {0 , 0xfe, 0 , 4, "Lives" },
  6845.  {0x15, 0x01, 0x03, 0x01, "1" },
  6846.  {0x15, 0x01, 0x03, 0x00, "2" },
  6847.  {0x15, 0x01, 0x03, 0x03, "3" },
  6848.  {0x15, 0x01, 0x03, 0x02, "4" },
  6849.  
  6850.  {0 , 0xfe, 0 , 4, "Time" },
  6851.  {0x15, 0x01, 0x0c, 0x08, "400 Seconds" },
  6852.  {0x15, 0x01, 0x0c, 0x0c, "300 Seconds" },
  6853.  {0x15, 0x01, 0x0c, 0x04, "200 Seconds" },
  6854.  {0x15, 0x01, 0x0c, 0x00, "100 Seconds" },
  6855.  
  6856.  {0 , 0xfe, 0 , 4, "Health" },
  6857.  {0x15, 0x01, 0x30, 0x00, "17" },
  6858.  {0x15, 0x01, 0x30, 0x10, "24" },
  6859.  {0x15, 0x01, 0x30, 0x30, "33" },
  6860.  {0x15, 0x01, 0x30, 0x20, "40" },
  6861.  
  6862.  {0 , 0xfe, 0 , 2, "Continues" },
  6863.  {0x15, 0x01, 0x40, 0x00, "Off" },
  6864.  {0x15, 0x01, 0x40, 0x40, "On" },
  6865.  
  6866.  {0 , 0xfe, 0 , 2, "Demo Sounds" },
  6867.  {0x15, 0x01, 0x80, 0x80, "Off" },
  6868.  {0x15, 0x01, 0x80, 0x00, "On" },
  6869.  
  6870.  {0 , 0xfe, 0 , 4, "Bullets" },
  6871.  {0x16, 0x01, 0x03, 0x00, "Least" },
  6872.  {0x16, 0x01, 0x03, 0x01, "Less" },
  6873.  {0x16, 0x01, 0x03, 0x03, "Normal" },
  6874.  {0x16, 0x01, 0x03, 0x02, "More" },
  6875.  
  6876.  {0 , 0xfe, 0 , 4, "Enemy Movement" },
  6877.  {0x16, 0x01, 0x0c, 0x08, "Slow" },
  6878.  {0x16, 0x01, 0x0c, 0x0c, "Normal" },
  6879.  {0x16, 0x01, 0x0c, 0x04, "Fast" },
  6880.  {0x16, 0x01, 0x0c, 0x00, "Fastest" },
  6881.  
  6882.  {0 , 0xfe, 0 , 4, "Enemy Strength" },
  6883.  {0x16, 0x01, 0x30, 0x20, "Less" },
  6884.  {0x16, 0x01, 0x30, 0x30, "Normal" },
  6885.  {0x16, 0x01, 0x30, 0x10, "More" },
  6886.  {0x16, 0x01, 0x30, 0x00, "Most" },
  6887.  
  6888.  {0 , 0xfe, 0 , 2, "Enemy Weapon Speed" },
  6889.  {0x16, 0x01, 0x40, 0x40, "Normal" },
  6890.  {0x16, 0x01, 0x40, 0x00, "Fast" },
  6891.  
  6892.  {0 , 0xfe, 0 , 2, "Game Over Message" },
  6893.  {0x16, 0x01, 0x80, 0x80, "Off" },
  6894.  {0x16, 0x01, 0x80, 0x00, "On" },
  6895. };
  6896.  
  6897. static INT32 Robocop2DIPInfo(struct BurnDIPInfo* pdi, UINT32 i) { if (i >= sizeof(Robocop2DIPList) / sizeof(Robocop2DIPList[0])) { return 1; } if (pdi) { *pdi = Robocop2DIPList[i]; } return 0; }
  6898.  
  6899. void cninja_main_write_word(UINT32 address, UINT16 data)
  6900. {
  6901.  if ((address & 0xfffffff0) == 0x140000) { deco16_pf_control[0][(address & 0x0f)/2] = data; return; }
  6902.  if ((address & 0xfffffff0) == 0x150000) { deco16_pf_control[1][(address & 0x0f)/2] = data; return; }
  6903.  
  6904.  switch (address)
  6905.  {
  6906.   case 0x190000:
  6907.   case 0x1a4000:
  6908.    irq_mask = data & 0xff;
  6909.   return;
  6910.  
  6911.   case 0x190002:
  6912.   case 0x1a4002:
  6913.   {
  6914.    scanline = data & 0xff;
  6915.  
  6916.    if ((!(((scanline)>>(1))&1)) && (scanline > 0) && (scanline < 240)) {
  6917.     irq_timer = scanline;
  6918.    } else {
  6919.     irq_timer = -1;
  6920.    }
  6921.   }
  6922.   return;
  6923.  
  6924.   case 0x1ac000:
  6925.   case 0x1b4000:
  6926.    memcpy (DrvSprBuf, DrvSprRAM, 0x800);
  6927.   return;
  6928.  
  6929.   case 0x17ff2a:
  6930.   case 0x198064:
  6931.   case 0x1bc0a8:
  6932.    if (has_z80) {
  6933.     *soundlatch = data & 0xff;
  6934.     ZetNmi();
  6935.    } else {
  6936.     deco16_soundlatch = data & 0xff;
  6937.     h6280SetIRQLine(0, 1);
  6938.    }
  6939.   break;
  6940.  }
  6941.  
  6942.  if ((address & 0xfffff800) == 0x198000) {
  6943.   deco16_66_prot_w(address, data, 0xffff);
  6944.   return;
  6945.  }
  6946.  
  6947.  if ((address & 0xffffff00) == 0x1bc000) {
  6948.   UINT16 *ProtRam = (UINT16*)deco16_prot_ram;
  6949.   ProtRam[(address - 0x1bc000) >> 1] = data;
  6950.   return;
  6951.  }
  6952. }
  6953.  
  6954. void cninja_main_write_byte(UINT32 address, UINT8 data)
  6955. {
  6956.  switch (address)
  6957.  {
  6958.  
  6959.   case 0x190001:
  6960.  
  6961.   case 0x1a4001:
  6962.    irq_mask = data & 0xff;
  6963.   return;
  6964.  
  6965.  
  6966.   case 0x190003:
  6967.  
  6968.   case 0x1a4003:
  6969.   {
  6970.    scanline = data & 0xff;
  6971.    if ((~irq_mask & 0x02) && (scanline > 0) && (scanline < 240)) {
  6972.     irq_timer = scanline;
  6973.    } else {
  6974.     irq_timer = -1;
  6975.    }
  6976.   }
  6977.   return;
  6978.  
  6979.  
  6980.   case 0x1ac001:
  6981.  
  6982.   case 0x1b4001:
  6983.    memcpy (DrvSprBuf, DrvSprRAM, 0x800);
  6984.   return;
  6985.  
  6986.   case 0x198065:
  6987.   case 0x1bc0a9:
  6988.    if (has_z80) {
  6989.     *soundlatch = data;
  6990.     ZetNmi();
  6991.    } else {
  6992.     deco16_soundlatch = data;
  6993.     h6280SetIRQLine(0, 1);
  6994.    }
  6995.   break;
  6996.  }
  6997.  
  6998.  if ((address & 0xfffff800) == 0x198000) {
  6999.   deco16_66_prot_w(address, data, 0x00ff << ((address & 1) << 3));
  7000.   return;
  7001.  }
  7002.  
  7003.  if ((address & 0xffffff00) == 0x1bc000) {
  7004.   DrvPrtRAM[(address & 0xff)^1] = data;
  7005.  
  7006.   return;
  7007.  }
  7008.  
  7009.  {};
  7010. }
  7011.  
  7012. UINT16 cninja_main_read_word(UINT32 address)
  7013. {
  7014.  switch (address)
  7015.  {
  7016.   case 0x17ff22:
  7017.    return (DrvDips[1] << 8) | (DrvDips[0] << 0);
  7018.  
  7019.   case 0x17ff28:
  7020.    return (DrvInputs[1] & 0x07) | (deco16_vblank & 0x08);
  7021.  
  7022.   case 0x17ff2c:
  7023.    return DrvInputs[0];
  7024.  
  7025.   case 0x1a4002:
  7026.   case 0x190002:
  7027.    return scanline;
  7028.  
  7029.   case 0x1a4004:
  7030.   case 0x190004:
  7031.    SekSetIRQLine(3, (0x0000));
  7032.    SekSetIRQLine(4, (0x0000));
  7033.    return 0;
  7034.  }
  7035.  
  7036.  if ((address & 0xfffffc00) == 0x1bc000) {
  7037.   return deco16_104_cninja_prot_r(address);
  7038.  }
  7039.  
  7040.  if ((address & 0xfffff800) == 0x198000) {
  7041.   return deco16_60_prot_r(address);
  7042.  }
  7043.  
  7044.  {};
  7045.  
  7046.  return 0;
  7047. }
  7048.  
  7049. UINT8 cninja_main_read_byte(UINT32 address)
  7050. {
  7051.  switch (address)
  7052.  {
  7053.   case 0x17ff22:
  7054.    return DrvDips[1];
  7055.  
  7056.   case 0x17ff23:
  7057.    return DrvDips[0];
  7058.  
  7059.  
  7060.   case 0x17ff29:
  7061.    return (DrvInputs[1] & 0x07) | (deco16_vblank & 0x08);
  7062.  
  7063.   case 0x17ff2c:
  7064.    return DrvInputs[0] >> 8;
  7065.  
  7066.   case 0x17ff2d:
  7067.    return DrvInputs[0];
  7068.  
  7069.  
  7070.   case 0x1a4003:
  7071.  
  7072.   case 0x190003:
  7073.    return scanline;
  7074.  
  7075.  
  7076.   case 0x1a4005:
  7077.  
  7078.   case 0x190005:
  7079.    SekSetIRQLine(3, (0x0000));
  7080.    SekSetIRQLine(4, (0x0000));
  7081.    return 0;
  7082.  }
  7083.  
  7084.  if ((address & 0xfffff800) == 0x198000) {
  7085.   return deco16_60_prot_r(address) >> ((~address & 1) << 3);
  7086.  }
  7087.  
  7088.  if ((address & 0xfffffc00) == 0x1bc000) {
  7089.   return deco16_104_cninja_prot_r(address) >> ((~address & 1) << 3);
  7090.  }
  7091.  
  7092.  {};
  7093.  
  7094.  return 0;
  7095. }
  7096.  
  7097. void mutantf_main_write_word(UINT32 address, UINT16 data)
  7098. {
  7099.  if ((address & 0xfffffff0) == 0x300000) { deco16_pf_control[0][(address & 0x0f)/2] = data; return; }
  7100.  if ((address & 0xfffffff0) == 0x310000) { deco16_pf_control[1][(address & 0x0f)/2] = data; return; }
  7101.  
  7102.  switch (address)
  7103.  {
  7104.   case 0x180000:
  7105.    deco16_priority = data;
  7106.   return;
  7107.  
  7108.   case 0x1a0064:
  7109.    deco16_soundlatch = data & 0xff;
  7110.    h6280SetIRQLine(0, 1);
  7111.   break;
  7112.  
  7113.   case 0x1c0000:
  7114.    memcpy (DrvSprBuf, DrvSprRAM, 0x800);
  7115.   return;
  7116.  
  7117.   case 0x1e0000:
  7118.    memcpy (DrvSprBuf1, DrvSprRAM1, 0x800);
  7119.   return;
  7120.  }
  7121.  
  7122.  if ((address & 0xfffff800) == 0x1a0000) {
  7123.   deco16_66_prot_w(address, data, 0xffff);
  7124.   return;
  7125.  }
  7126. }
  7127.  
  7128. void mutantf_main_write_byte(UINT32 address, UINT8 data)
  7129. {
  7130.  switch (address)
  7131.  {
  7132.   case 0x180000:
  7133.   case 0x180001:
  7134.    deco16_priority = data;
  7135.   return;
  7136.  
  7137.   case 0x1c0000:
  7138.   case 0x1c0001:
  7139.    memcpy (DrvSprBuf, DrvSprRAM, 0x800);
  7140.   return;
  7141.  
  7142.   case 0x1e0000:
  7143.   case 0x1e0001:
  7144.    memcpy (DrvSprBuf1, DrvSprRAM1, 0x800);
  7145.   return;
  7146.  
  7147.   case 0x1a0065:
  7148.    deco16_soundlatch = data;
  7149.    h6280SetIRQLine(0, 1);
  7150.   break;
  7151.  }
  7152.  
  7153.  if ((address & 0xfffff800) == 0x1a0000) {
  7154.   deco16_66_prot_w(address, data, 0x00ff << ((address & 1) << 3));
  7155.   return;
  7156.  }
  7157. }
  7158.  
  7159. UINT16 mutantf_main_read_word(UINT32 address)
  7160. {
  7161.  if ((address & 0xfffff800) == 0x1a0000) {
  7162.   return deco16_66_prot_r(address);
  7163.  }
  7164.  
  7165.  return 0;
  7166. }
  7167.  
  7168. UINT8 mutantf_main_read_byte(UINT32 address)
  7169. {
  7170.  if (address == 0x1c0001) return (0xffff) & 0xff;
  7171.  
  7172.  if ((address & 0xfffff800) == 0x1a0000) {
  7173.   return deco16_66_prot_r(address) >> ((~address & 1) << 3);
  7174.  }
  7175.  
  7176.  return 0;
  7177. }
  7178.  
  7179. void robocop2_main_write_word(UINT32 address, UINT16 data)
  7180. {
  7181.  if ((address & 0xfffffff0) == 0x140000) { deco16_pf_control[0][(address & 0x0f)/2] = data; return; }
  7182.  if ((address & 0xfffffff0) == 0x150000) { deco16_pf_control[1][(address & 0x0f)/2] = data; return; }
  7183.  
  7184.  switch (address)
  7185.  {
  7186.   case 0x1b0000:
  7187.    irq_mask = data & 0xff;
  7188.   return;
  7189.  
  7190.   case 0x1b0002: {
  7191.    scanline = data & 0xff;
  7192.  
  7193.    if ((!(((scanline)>>(1))&1)) && (scanline > 0) && (scanline < 240)) {
  7194.     irq_timer = scanline;
  7195.    } else {
  7196.     irq_timer = -1;
  7197.    }
  7198.   }
  7199.   return;
  7200.  
  7201.   case 0x198000:
  7202.    memcpy (DrvSprBuf, DrvSprRAM, 0x800);
  7203.   return;
  7204.  
  7205.   case 0x18c064:
  7206.    deco16_soundlatch = data & 0xff;
  7207.    h6280SetIRQLine(0, 1);
  7208.   return;;
  7209.  
  7210.   case 0x1f0000:
  7211.    deco16_priority = data;
  7212.   return;
  7213.  }
  7214. }
  7215.  
  7216. void robocop2_main_write_byte(UINT32 address, UINT8 data)
  7217. {
  7218.  switch (address)
  7219.  {
  7220.   case 0x1b0000:
  7221.   case 0x1b0001:
  7222.  
  7223.    irq_mask = data & 0xff;
  7224.   return;
  7225.  
  7226.   case 0x1b0002:
  7227.   case 0x1b0003: {
  7228.    scanline = data & 0xff;
  7229.    if ((~irq_mask & 0x02) && (scanline > 0) && (scanline < 240)) {
  7230.     irq_timer = scanline;
  7231.    } else {
  7232.     irq_timer = -1;
  7233.    }
  7234.   }
  7235.   return;
  7236.  
  7237.   case 0x198000:
  7238.   case 0x198001:
  7239.    memcpy (DrvSprBuf, DrvSprRAM, 0x800);
  7240.   return;
  7241.  
  7242.   case 0x18c065:
  7243.    deco16_soundlatch = data;
  7244.    h6280SetIRQLine(0, 1);
  7245.   break;
  7246.  
  7247.   case 0x1f0000:
  7248.   case 0x1f0001:
  7249.    deco16_priority = data;
  7250.   return;
  7251.  }
  7252. }
  7253.  
  7254. UINT16 robocop2_main_read_word(UINT32 address)
  7255. {
  7256.  switch (address)
  7257.  {
  7258.   case 0x18c41a:
  7259.    return DrvInputs[0];
  7260.  
  7261.   case 0x18c320:
  7262.    return (DrvInputs[1] & 0x07) | (deco16_vblank & 0x08);
  7263.  
  7264.   case 0x18c4e6:
  7265.    return (DrvDips[1] << 8) | (DrvDips[0] << 0);
  7266.  
  7267.   case 0x18c504:
  7268.    return 0x0084;
  7269.  
  7270.   case 0x1b0002:
  7271.    return scanline;
  7272.  
  7273.   case 0x1b0004:
  7274.    SekSetIRQLine(3, (0x0000));
  7275.    SekSetIRQLine(4, (0x0000));
  7276.    return 0;
  7277.  
  7278.   case 0x1f8000:
  7279.    return DrvDips[2];
  7280.  }
  7281.  
  7282.  return 0;
  7283. }
  7284.  
  7285. UINT8 robocop2_main_read_byte(UINT32 address)
  7286. {
  7287.  switch (address)
  7288.  {
  7289.   case 0x18c41a:
  7290.    return DrvInputs[0] >> 8;
  7291.  
  7292.   case 0x18c41b:
  7293.    return DrvInputs[0] >> 0;
  7294.  
  7295.   case 0x18c320:
  7296.   case 0x18c321:
  7297.    return (DrvInputs[1] & 0x07) | (deco16_vblank & 0x08);
  7298.  
  7299.   case 0x18c4e6:
  7300.    return DrvDips[0];
  7301.  
  7302.   case 0x18c4e7:
  7303.    return DrvDips[1];
  7304.  
  7305.   case 0x18c504:
  7306.   case 0x18c505:
  7307.    return 0x0084;
  7308.  
  7309.   case 0x1b0002:
  7310.   case 0x1b0003:
  7311.    return scanline;
  7312.  
  7313.   case 0x1b0004:
  7314.   case 0x1b0005:
  7315.    SekSetIRQLine(3, (0x0000));
  7316.    SekSetIRQLine(4, (0x0000));
  7317.    return 0;
  7318.  
  7319.   case 0x1f8000:
  7320.   case 0x1f8001:
  7321.    return DrvDips[2];
  7322.  }
  7323.  
  7324.  return 0;
  7325. }
  7326.  
  7327. void stoneage_sound_write(UINT16 address, UINT8 data)
  7328. {
  7329.  switch (address)
  7330.  {
  7331.   case 0x8800:
  7332.    BurnYM2151SelectRegister(data);
  7333.   return;
  7334.  
  7335.   case 0x8801:
  7336.    BurnYM2151WriteRegister(data);
  7337.   return;
  7338.  
  7339.   case 0x9800:
  7340.    MSM6295Command(0, data);
  7341.   return;
  7342.  }
  7343. }
  7344.  
  7345. UINT8 stoneage_sound_read(UINT16 address)
  7346. {
  7347.  switch (address)
  7348.  {
  7349.   case 0x8800:
  7350.   case 0x8801:
  7351.    return YM2151ReadStatus(0);
  7352.  
  7353.   case 0x9800:
  7354.    return MSM6295ReadStatus(0);
  7355.  
  7356.   case 0xa000:
  7357.    ZetSetIRQLine(0x20, 0);
  7358.    return *soundlatch;
  7359.  }
  7360.  
  7361.  return 0;
  7362. }
  7363.  
  7364. static void DrvYM2151IrqHandler(INT32 state)
  7365. {
  7366.  ZetSetIRQLine(0, state ? 1 : 0);
  7367. }
  7368.  
  7369. static void DrvYM2151WritePort(UINT32, UINT32 data)
  7370. {
  7371.  DrvOkiBank = data & 1;
  7372.  
  7373.  memcpy (DrvSndROM1, DrvSndROM1 + 0x40000 + (data & 1) * 0x40000, 0x40000);
  7374. }
  7375.  
  7376. static INT32 cninja_bank_callback(const INT32 bank)
  7377. {
  7378.  if ((bank >> 4) & 0xf) return 0x0000;
  7379.  return 0x1000;
  7380. }
  7381.  
  7382. static INT32 mutantf_1_bank_callback(const INT32 bank)
  7383. {
  7384.  return ((bank >> 4) & 0x3) << 12;
  7385. }
  7386.  
  7387. static INT32 mutantf_2_bank_callback(const INT32 bank)
  7388. {
  7389.  return ((bank >> 5) & 0x1) << 14;
  7390. }
  7391.  
  7392. static INT32 robocop2_bank_callback(const INT32 bank)
  7393. {
  7394.  return (bank & 0x30) << 8;
  7395. }
  7396.  
  7397. static INT32 DrvDoReset()
  7398. {
  7399.  memset (AllRam, 0, RamEnd - AllRam);
  7400.  
  7401.  SekOpen(0);
  7402.  SekReset();
  7403.  SekClose();
  7404.  
  7405.  if (has_z80) {
  7406.   ZetOpen(0);
  7407.   ZetReset();
  7408.   ZetClose();
  7409.  
  7410.   MSM6295Reset(0);
  7411.   MSM6295Reset(1);
  7412.   BurnYM2151Reset();
  7413.  } else {
  7414.   deco16SoundReset();
  7415.  }
  7416.  
  7417.  DrvYM2151WritePort(0, 0);
  7418.  
  7419.  deco16Reset();
  7420.  
  7421.  scanline = 0;
  7422.  irq_mask = 0;
  7423.  irq_timer = -1;
  7424.  
  7425.  return 0;
  7426. }
  7427.  
  7428. static void DrvBootlegCharDecode(UINT8 *gfx, INT32 len)
  7429. {
  7430.  UINT8 *dst = (UINT8*)BurnMalloc(len);
  7431.  
  7432.  memcpy (dst, gfx, len);
  7433.  
  7434.  for (INT32 r = 0; r < len; r+=4) {
  7435.   for (INT32 i = 0; i < 8; i++) {
  7436.    INT32 t0 = (dst[r + 3] >> (7 - (i & 7))) & 1;
  7437.    INT32 t1 = (dst[r + 1] >> (7 - (i & 7))) & 1;
  7438.    INT32 t2 = (dst[r + 2] >> (7 - (i & 7))) & 1;
  7439.    INT32 t3 = (dst[r + 0] >> (7 - (i & 7))) & 1;
  7440.  
  7441.    gfx[(r * 2) + i] = (t0 << 3) | (t1 << 2) | (t2 << 1) | (t3 << 0);
  7442.   }
  7443.  }
  7444.  
  7445.  _BurnFree(dst); dst = __null;;
  7446. }
  7447.  
  7448. static INT32 MemIndex()
  7449. {
  7450.  UINT8 *Next; Next = AllMem;
  7451.  
  7452.  Drv68KROM = Next; Next += 0x100000;
  7453.  DrvZ80ROM = Next;
  7454.  DrvHucROM = Next; Next += 0x010000;
  7455.  
  7456.  DrvGfxROM0 = Next; Next += 0x200000;
  7457.  DrvGfxROM1 = Next; Next += 0x200000;
  7458.  DrvGfxROM2 = Next; Next += 0x300000;
  7459.  DrvGfxROM3 = Next; Next += 0xa00000;
  7460.  DrvGfxROM4 = Next; Next += 0x100000;
  7461.  
  7462.  MSM6295ROM = Next;
  7463.  DrvSndROM0 = Next; Next += 0x100000;
  7464.  DrvSndROM1 = Next; Next += 0x0c0000;
  7465.  
  7466.  DrvPalette = (UINT32*)Next; Next += 0x0800 * sizeof(UINT32);
  7467.  
  7468.  AllRam = Next;
  7469.  
  7470.  Drv68KRAM = Next; Next += 0x008000;
  7471.  DrvHucRAM = Next; Next += 0x002000;
  7472.  DrvSprRAM = Next; Next += 0x000800;
  7473.  DrvSprBuf = Next; Next += 0x000800;
  7474.  DrvSprRAM1 = Next; Next += 0x000800;
  7475.  DrvSprBuf1 = Next; Next += 0x000800;
  7476.  DrvPalRAM = Next; Next += 0x002000;
  7477.  
  7478.  deco16_prot_ram = (UINT16*)Next;
  7479.  DrvPrtRAM = Next; Next += 0x000800;
  7480.  
  7481.  DrvZ80RAM = Next; Next += 0x000800;
  7482.  
  7483.  soundlatch = Next; Next += 0x000001;
  7484.  flipscreen = Next; Next += 0x000001;
  7485.  
  7486.  RamEnd = Next;
  7487.  
  7488.  SoundBuffer = (INT16*)Next; Next += nBurnSoundLen * 2 * sizeof(INT16);
  7489.  
  7490.  MemEnd = Next;
  7491.  
  7492.  return 0;
  7493. }
  7494.  
  7495. static void cninja_patch()
  7496. {
  7497.  UINT16 *rom = (UINT16 *)Drv68KROM;
  7498.  
  7499.  for (INT32 i = 0; i < 0x80000 / 2; i++)
  7500.  {
  7501.   if (rom[i] == 0x66ff || rom[i] == 0x67ff)
  7502.   {
  7503.    if (rom[i - 4] == 0x0c39 || rom[i - 4] == 0x0839)
  7504.    {
  7505.     rom[i - 0] = 0x4e71;
  7506.     rom[i - 1] = 0x4e71;
  7507.     rom[i - 2] = 0x4e71;
  7508.     rom[i - 3] = 0x4e71;
  7509.     rom[i - 4] = 0x4e71;
  7510.    }
  7511.   }
  7512.  }
  7513. }
  7514.  
  7515. static INT32 CninjaInit()
  7516. {
  7517.  BurnSetRefreshRate(58.00);
  7518.  
  7519.  AllMem = __null;
  7520.  MemIndex();
  7521.  INT32 nLen = MemEnd - (UINT8 *)0;
  7522.  if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == __null) return 1;
  7523.  memset(AllMem, 0, nLen);
  7524.  MemIndex();
  7525.  
  7526.  {
  7527.   if (BurnLoadRom(Drv68KROM + 0x00001, 0, 2)) return 1;
  7528.   if (BurnLoadRom(Drv68KROM + 0x00000, 1, 2)) return 1;
  7529.   if (BurnLoadRom(Drv68KROM + 0x40001, 2, 2)) return 1;
  7530.   if (BurnLoadRom(Drv68KROM + 0x40000, 3, 2)) return 1;
  7531.   if (BurnLoadRom(Drv68KROM + 0x80001, 4, 2)) return 1;
  7532.   if (BurnLoadRom(Drv68KROM + 0x80000, 5, 2)) return 1;
  7533.  
  7534.   if (BurnLoadRom(DrvHucROM + 0x00000, 6, 1)) return 1;
  7535.  
  7536.   if (BurnLoadRom(DrvGfxROM0 + 0x00001, 7, 2)) return 1;
  7537.   if (BurnLoadRom(DrvGfxROM0 + 0x00000, 8, 2)) return 1;
  7538.  
  7539.   if (BurnLoadRom(DrvGfxROM1 + 0x00000, 9, 1)) return 1;
  7540.  
  7541.   if (BurnLoadRom(DrvGfxROM2 + 0x00000, 10, 1)) return 1;
  7542.   if (BurnLoadRom(DrvGfxROM2 + 0x80000, 11, 1)) return 1;
  7543.  
  7544.   for (INT32 i = 0; i < 0x40000; i++) {
  7545.    INT32 n = DrvGfxROM2[i + 0x40000];
  7546.    DrvGfxROM2[i + 0x40000] = DrvGfxROM2[i + 0x80000];
  7547.    DrvGfxROM2[i + 0x80000] = n;
  7548.   }
  7549.  
  7550.   if (BurnLoadRom(DrvGfxROM3 + 0x000000, 12, 2)) return 1;
  7551.   if (BurnLoadRom(DrvGfxROM3 + 0x000001, 13, 2)) return 1;
  7552.   if (BurnLoadRom(DrvGfxROM3 + 0x100000, 14, 2)) return 1;
  7553.   if (BurnLoadRom(DrvGfxROM3 + 0x100001, 15, 2)) return 1;
  7554.  
  7555.   BurnByteswap(DrvGfxROM3, 0x200000);
  7556.  
  7557.   if (BurnLoadRom(DrvSndROM0 + 0x00000, 16, 1)) return 1;
  7558.  
  7559.   if (BurnLoadRom(DrvSndROM1 + 0x40000, 17, 1)) return 1;
  7560.  
  7561.   deco16_tile_decode(DrvGfxROM0, DrvGfxROM0, 0x020000, 1);
  7562.   deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x080000, 0);
  7563.   deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x100000, 0);
  7564.  
  7565.   deco16_sprite_decode(DrvGfxROM3, 0x200000);
  7566.  
  7567.   cninja_patch();
  7568.  }
  7569.  
  7570.  deco16Init(0, 1, 1);
  7571.  deco16_set_graphics(DrvGfxROM0, 0x20000 * 2, DrvGfxROM1, 0x080000 * 2, DrvGfxROM2, 0x100000 * 2);
  7572.  deco16_set_global_offsets(0, 8);
  7573.  
  7574.  deco16_set_color_base(2, 0x200 + 0x000);
  7575.  deco16_set_color_base(3, 0x200 + 0x300);
  7576.  deco16_set_bank_callback(2, cninja_bank_callback);
  7577.  deco16_set_bank_callback(3, cninja_bank_callback);
  7578.  
  7579.  SekInit(0, 0x68000);
  7580.  SekOpen(0);
  7581.  SekMapMemory(Drv68KROM, 0x000000, 0x0bffff, ((1) | (4)));
  7582.  SekMapMemory(deco16_pf_ram[0], 0x144000, 0x144fff, ((1) | (2) | (4)));
  7583.  SekMapMemory(deco16_pf_ram[1], 0x146000, 0x146fff, ((1) | (2) | (4)));
  7584.  SekMapMemory(deco16_pf_rowscroll[0], 0x14c000, 0x14c7ff, ((1) | (2) | (4)));
  7585.  SekMapMemory(deco16_pf_rowscroll[1], 0x14e000, 0x14e7ff, ((1) | (2) | (4)));
  7586.  SekMapMemory(deco16_pf_ram[2], 0x154000, 0x154fff, ((1) | (2) | (4)));
  7587.  SekMapMemory(deco16_pf_ram[3], 0x156000, 0x156fff, ((1) | (2) | (4)));
  7588.  SekMapMemory(deco16_pf_rowscroll[2], 0x15c000, 0x15c7ff, ((1) | (2) | (4)));
  7589.  SekMapMemory(deco16_pf_rowscroll[3], 0x15e000, 0x15e7ff, ((1) | (2) | (4)));
  7590.  SekMapMemory(Drv68KRAM, 0x184000, 0x187fff, ((1) | (2) | (4)));
  7591.  SekMapMemory(DrvPalRAM, 0x19c000, 0x19dfff, ((1) | (2) | (4)));
  7592.  SekMapMemory(DrvSprRAM, 0x1a4000, 0x1a47ff, ((1) | (2) | (4)));
  7593.  SekSetWriteWordHandler(0, cninja_main_write_word);
  7594.  SekSetWriteByteHandler(0, cninja_main_write_byte);
  7595.  SekSetReadWordHandler(0, cninja_main_read_word);
  7596.  SekSetReadByteHandler(0, cninja_main_read_byte);
  7597.  SekClose();
  7598.  
  7599.  deco16SoundInit(DrvHucROM, DrvHucRAM, 8055000, 1, DrvYM2151WritePort, 40.0, 1006875, 75.0, 2013750, 60.0);
  7600.  
  7601.  GenericTilesInit();
  7602.  
  7603.  DrvDoReset();
  7604.  
  7605.  return 0;
  7606. }
  7607.  
  7608. static INT32 EdrandyInit()
  7609. {
  7610.  BurnSetRefreshRate(58.00);
  7611.  
  7612.  AllMem = __null;
  7613.  MemIndex();
  7614.  INT32 nLen = MemEnd - (UINT8 *)0;
  7615.  if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == __null) return 1;
  7616.  memset(AllMem, 0, nLen);
  7617.  MemIndex();
  7618.  
  7619.  {
  7620.   if (BurnLoadRom(Drv68KROM + 0x00001, 0, 2)) return 1;
  7621.   if (BurnLoadRom(Drv68KROM + 0x00000, 1, 2)) return 1;
  7622.   if (BurnLoadRom(Drv68KROM + 0x40001, 2, 2)) return 1;
  7623.   if (BurnLoadRom(Drv68KROM + 0x40000, 3, 2)) return 1;
  7624.   if (BurnLoadRom(Drv68KROM + 0x80001, 4, 2)) return 1;
  7625.   if (BurnLoadRom(Drv68KROM + 0x80000, 5, 2)) return 1;
  7626.   if (BurnLoadRom(Drv68KROM + 0xc0001, 6, 2)) return 1;
  7627.   if (BurnLoadRom(Drv68KROM + 0xc0000, 7, 2)) return 1;
  7628.  
  7629.   if (BurnLoadRom(DrvHucROM + 0x00000, 8, 1)) return 1;
  7630.  
  7631.   if (BurnLoadRom(DrvGfxROM0 + 0x00001, 9, 2)) return 1;
  7632.   if (BurnLoadRom(DrvGfxROM0 + 0x00000, 10, 2)) return 1;
  7633.  
  7634.   if (BurnLoadRom(DrvGfxROM1 + 0x00000, 11, 1)) return 1;
  7635.  
  7636.   if (BurnLoadRom(DrvGfxROM2 + 0x00000, 12, 1)) return 1;
  7637.   if (BurnLoadRom(DrvGfxROM2 + 0x80000, 13, 1)) return 1;
  7638.  
  7639.   for (INT32 i = 0; i < 0x40000; i++) {
  7640.    INT32 n = DrvGfxROM2[i + 0x40000];
  7641.    DrvGfxROM2[i + 0x40000] = DrvGfxROM2[i + 0x80000];
  7642.    DrvGfxROM2[i + 0x80000] = n;
  7643.   }
  7644.  
  7645.   if (BurnLoadRom(DrvGfxROM3 + 0x000000, 14, 2)) return 1;
  7646.   if (BurnLoadRom(DrvGfxROM3 + 0x000001, 15, 2)) return 1;
  7647.   if (BurnLoadRom(DrvGfxROM3 + 0x100000, 16, 2)) return 1;
  7648.   if (BurnLoadRom(DrvGfxROM3 + 0x100001, 17, 2)) return 1;
  7649.   if (BurnLoadRom(DrvGfxROM3 + 0x200000, 18, 2)) return 1;
  7650.   if (BurnLoadRom(DrvGfxROM3 + 0x200001, 19, 2)) return 1;
  7651.   if (BurnLoadRom(DrvGfxROM3 + 0x300000, 20, 2)) return 1;
  7652.   if (BurnLoadRom(DrvGfxROM3 + 0x300001, 21, 2)) return 1;
  7653.   if (BurnLoadRom(DrvGfxROM3 + 0x400000, 22, 2)) return 1;
  7654.   if (BurnLoadRom(DrvGfxROM3 + 0x400001, 23, 2)) return 1;
  7655.  
  7656.   BurnByteswap(DrvGfxROM3, 0x500000);
  7657.  
  7658.   if (BurnLoadRom(DrvSndROM0 + 0x00000, 24, 1)) return 1;
  7659.  
  7660.   if (BurnLoadRom(DrvSndROM1 + 0x40000, 25, 1)) return 1;
  7661.  
  7662.   deco16_tile_decode(DrvGfxROM0, DrvGfxROM0, 0x020000, 1);
  7663.   deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x080000, 0);
  7664.   deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x100000, 0);
  7665.  
  7666.   deco16_sprite_decode(DrvGfxROM3, 0x500000);
  7667.  }
  7668.  
  7669.  deco16Init(0, 0, 1);
  7670.  deco16_set_graphics(DrvGfxROM0, 0x20000 * 2, DrvGfxROM1, 0x080000 * 2, DrvGfxROM2, 0x100000 * 2);
  7671.  deco16_set_global_offsets(0, 8);
  7672.  
  7673.  deco16_set_color_base(2, 0x200 + 0x000);
  7674.  deco16_set_color_base(3, 0x200 + 0x300);
  7675.  deco16_set_bank_callback(2, cninja_bank_callback);
  7676.  deco16_set_bank_callback(3, cninja_bank_callback);
  7677.  
  7678.  SekInit(0, 0x68000);
  7679.  SekOpen(0);
  7680.  SekMapMemory(Drv68KROM, 0x000000, 0x0fffff, ((1) | (4)));
  7681.  SekMapMemory(deco16_pf_ram[0], 0x144000, 0x144fff, ((1) | (2) | (4)));
  7682.  SekMapMemory(deco16_pf_ram[1], 0x146000, 0x146fff, ((1) | (2) | (4)));
  7683.  SekMapMemory(deco16_pf_rowscroll[0], 0x14c000, 0x14c7ff, ((1) | (2) | (4)));
  7684.  SekMapMemory(deco16_pf_rowscroll[1], 0x14e000, 0x14e7ff, ((1) | (2) | (4)));
  7685.  SekMapMemory(deco16_pf_ram[2], 0x154000, 0x154fff, ((1) | (2) | (4)));
  7686.  SekMapMemory(deco16_pf_ram[3], 0x156000, 0x156fff, ((1) | (2) | (4)));
  7687.  SekMapMemory(deco16_pf_rowscroll[2], 0x15c000, 0x15c7ff, ((1) | (2) | (4)));
  7688.  SekMapMemory(deco16_pf_rowscroll[3], 0x15e000, 0x15e7ff, ((1) | (2) | (4)));
  7689.  SekMapMemory(DrvPalRAM, 0x188000, 0x189fff, ((1) | (2) | (4)));
  7690.  SekMapMemory(Drv68KRAM, 0x194000, 0x197fff, ((1) | (2) | (4)));
  7691.  SekMapMemory(DrvSprRAM, 0x1bc000, 0x1bc7ff, ((1) | (2) | (4)));
  7692.  SekSetWriteWordHandler(0, cninja_main_write_word);
  7693.  SekSetWriteByteHandler(0, cninja_main_write_byte);
  7694.  SekSetReadWordHandler(0, cninja_main_read_word);
  7695.  SekSetReadByteHandler(0, cninja_main_read_byte);
  7696.  SekClose();
  7697.  
  7698.  deco16SoundInit(DrvHucROM, DrvHucRAM, 8055000, 1, DrvYM2151WritePort, 40.0, 1006875, 75.0, 2013750, 60.0);
  7699.  
  7700.  GenericTilesInit();
  7701.  
  7702.  DrvDoReset();
  7703.  
  7704.  return 0;
  7705. }
  7706.  
  7707. static INT32 MutantfInit()
  7708. {
  7709.  BurnSetRefreshRate(58.00);
  7710.  
  7711.  AllMem = __null;
  7712.  MemIndex();
  7713.  INT32 nLen = MemEnd - (UINT8 *)0;
  7714.  if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == __null) return 1;
  7715.  memset(AllMem, 0, nLen);
  7716.  MemIndex();
  7717.  
  7718.  {
  7719.   if (BurnLoadRom(Drv68KROM + 0x00001, 0, 2)) return 1;
  7720.   if (BurnLoadRom(Drv68KROM + 0x00000, 1, 2)) return 1;
  7721.   if (BurnLoadRom(Drv68KROM + 0x40001, 2, 2)) return 1;
  7722.   if (BurnLoadRom(Drv68KROM + 0x40000, 3, 2)) return 1;
  7723.  
  7724.   if (BurnLoadRom(DrvHucROM + 0x00000, 4, 1)) return 1;
  7725.  
  7726.   if (BurnLoadRom(DrvGfxROM0 + 0x00000, 5, 2)) return 1;
  7727.   if (BurnLoadRom(DrvGfxROM0 + 0x00001, 6, 2)) return 1;
  7728.  
  7729.   if (BurnLoadRom(DrvGfxROM1 + 0x00000, 7, 1)) return 1;
  7730.  
  7731.   memcpy (DrvGfxROM0 + 0x50000, DrvGfxROM0 + 0x10000, 0x10000);
  7732.   memcpy (DrvGfxROM0 + 0x10000, DrvGfxROM1 + 0x00000, 0x40000);
  7733.   memcpy (DrvGfxROM0 + 0x60000, DrvGfxROM1 + 0x40000, 0x40000);
  7734.  
  7735.   if (BurnLoadRom(DrvGfxROM2 + 0x00000, 8, 1)) return 1;
  7736.   if (BurnLoadRom(DrvGfxROM2 + 0x80000, 9, 1)) return 1;
  7737.  
  7738.   for (INT32 i = 0; i < 0x40000; i++) {
  7739.    INT32 n = DrvGfxROM2[i + 0x40000];
  7740.    DrvGfxROM2[i + 0x40000] = DrvGfxROM2[i + 0x80000];
  7741.    DrvGfxROM2[i + 0x80000] = n;
  7742.   }
  7743.  
  7744.   if (BurnLoadRom(DrvGfxROM3 + 0x000000, 10, 2)) return 1;
  7745.   if (BurnLoadRom(DrvGfxROM3 + 0x000001, 13, 2)) return 1;
  7746.   if (BurnLoadRom(DrvGfxROM3 + 0x200000, 11, 2)) return 1;
  7747.   if (BurnLoadRom(DrvGfxROM3 + 0x200001, 14, 2)) return 1;
  7748.   if (BurnLoadRom(DrvGfxROM3 + 0x400000, 12, 2)) return 1;
  7749.   if (BurnLoadRom(DrvGfxROM3 + 0x400001, 15, 2)) return 1;
  7750.  
  7751.   if (BurnLoadRom(DrvGfxROM4 + 0x000001, 16, 4)) return 1;
  7752.   if (BurnLoadRom(DrvGfxROM4 + 0x000003, 17, 4)) return 1;
  7753.   if (BurnLoadRom(DrvGfxROM4 + 0x000000, 18, 4)) return 1;
  7754.   if (BurnLoadRom(DrvGfxROM4 + 0x000002, 19, 4)) return 1;
  7755.  
  7756.   BurnByteswap(DrvGfxROM3, 0x500000);
  7757.   BurnByteswap(DrvGfxROM4, 0x040000);
  7758.  
  7759.   if (BurnLoadRom(DrvSndROM0 + 0x00000, 20, 1)) return 1;
  7760.  
  7761.   if (BurnLoadRom(DrvSndROM1 + 0x40000, 21, 1)) return 1;
  7762.  
  7763.   deco56_decrypt_gfx(DrvGfxROM0, 0xa0000);
  7764.   deco56_decrypt_gfx(DrvGfxROM1, 0x80000);
  7765.  
  7766.   deco16_tile_decode(DrvGfxROM0, DrvGfxROM0, 0x0a0000, 1);
  7767.   deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x080000, 0);
  7768.   deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x100000, 0);
  7769.  
  7770.   deco16_sprite_decode(DrvGfxROM3, 0x500000);
  7771.   deco16_sprite_decode(DrvGfxROM4, 0x040000);
  7772.  }
  7773.  
  7774.  deco16Init(0, 0, 1);
  7775.  deco16_set_graphics(DrvGfxROM0, 0xa0000 * 2, DrvGfxROM1, 0x080000 * 2, DrvGfxROM2, 0x100000 * 2);
  7776.  deco16_set_global_offsets(0, 8);
  7777.  
  7778.  deco16_set_color_base(0, 0x000);
  7779.  deco16_set_color_base(1, 0x300);
  7780.  deco16_set_color_base(2, 0x200);
  7781.  deco16_set_color_base(3, 0x400);
  7782.  deco16_set_bank_callback(0, mutantf_1_bank_callback);
  7783.  deco16_set_bank_callback(1, mutantf_2_bank_callback);
  7784.  deco16_set_bank_callback(2, mutantf_1_bank_callback);
  7785.  deco16_set_bank_callback(3, mutantf_1_bank_callback);
  7786.  
  7787.  SekInit(0, 0x68000);
  7788.  SekOpen(0);
  7789.  SekMapMemory(Drv68KROM, 0x000000, 0x07ffff, ((1) | (4)));
  7790.  SekMapMemory(Drv68KRAM, 0x100000, 0x103fff, ((1) | (2) | (4)));
  7791.  SekMapMemory(DrvSprRAM, 0x120000, 0x1207ff, ((1) | (2) | (4)));
  7792.  SekMapMemory(DrvSprRAM1, 0x140000, 0x1407ff, ((1) | (2) | (4)));
  7793.  SekMapMemory(DrvPalRAM, 0x160000, 0x161fff, ((1) | (2) | (4)));
  7794.  SekMapMemory(deco16_pf_ram[0], 0x304000, 0x305fff, ((1) | (2) | (4)));
  7795.  SekMapMemory(deco16_pf_ram[1], 0x306000, 0x307fff, ((1) | (2) | (4)));
  7796.  SekMapMemory(deco16_pf_rowscroll[0], 0x308000, 0x3087ff, ((1) | (2) | (4)));
  7797.  SekMapMemory(deco16_pf_rowscroll[1], 0x30a000, 0x30a7ff, ((1) | (2) | (4)));
  7798.  SekMapMemory(deco16_pf_ram[2], 0x314000, 0x315fff, ((1) | (2) | (4)));
  7799.  SekMapMemory(deco16_pf_ram[3], 0x316000, 0x317fff, ((1) | (2) | (4)));
  7800.  SekMapMemory(deco16_pf_rowscroll[2], 0x318000, 0x3187ff, ((1) | (2) | (4)));
  7801.  SekMapMemory(deco16_pf_rowscroll[3], 0x31a000, 0x31a7ff, ((1) | (2) | (4)));
  7802.  SekSetWriteWordHandler(0, mutantf_main_write_word);
  7803.  SekSetWriteByteHandler(0, mutantf_main_write_byte);
  7804.  SekSetReadWordHandler(0, mutantf_main_read_word);
  7805.  SekSetReadByteHandler(0, mutantf_main_read_byte);
  7806.  SekClose();
  7807.  
  7808.  deco16SoundInit(DrvHucROM, DrvHucRAM, 8055000, 0, DrvYM2151WritePort, 40.0, 1006875, 75.0, 2013750, 60.0);
  7809.  
  7810.  GenericTilesInit();
  7811.  
  7812.  DrvDoReset();
  7813.  
  7814.  return 0;
  7815. }
  7816.  
  7817. static INT32 CninjablInit()
  7818. {
  7819.  BurnSetRefreshRate(58.00);
  7820.  
  7821.  AllMem = __null;
  7822.  MemIndex();
  7823.  INT32 nLen = MemEnd - (UINT8 *)0;
  7824.  if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == __null) return 1;
  7825.  memset(AllMem, 0, nLen);
  7826.  MemIndex();
  7827.  
  7828.  {
  7829.   if (BurnLoadRom(Drv68KROM + 0x00000, 0, 1)) return 1;
  7830.   if (BurnLoadRom(Drv68KROM + 0x80000, 1, 1)) return 1;
  7831.  
  7832.   if (BurnLoadRom(DrvZ80ROM + 0x00000, 2, 1)) return 1;
  7833.  
  7834.   UINT8 *tmp = (UINT8*)malloc(0x400000);
  7835.  
  7836.   if (BurnLoadRom(tmp + 0x00000, 3, 2)) return 1;
  7837.   if (BurnLoadRom(tmp + 0x00001, 4, 2)) return 1;
  7838.   BurnByteswap(tmp, 0x400000);
  7839.  
  7840.   for (INT32 i = 0; i < 0x200000; i++) tmp[i] ^= 0xff;
  7841.  
  7842.   memcpy (DrvGfxROM0 + 0x000000, tmp + 0x000000, 0x020000);
  7843.   memcpy (DrvGfxROM1 + 0x000000, tmp + 0x080000, 0x080000);
  7844.   memcpy (DrvGfxROM2 + 0x000000, tmp + 0x180000, 0x080000);
  7845.   memcpy (DrvGfxROM2 + 0x080000, tmp + 0x100000, 0x080000);
  7846.   memcpy (DrvGfxROM3 + 0x000000, tmp + 0x200000, 0x200000);
  7847.  
  7848.   if (tmp) {
  7849.    free (tmp);
  7850.    tmp = __null;
  7851.   }
  7852.  
  7853.   if (BurnLoadRom(DrvSndROM0 + 0x00000, 5, 1)) return 1;
  7854.  
  7855.   DrvBootlegCharDecode(DrvGfxROM0, 0x020000);
  7856.   deco16_sprite_decode(DrvGfxROM1, 0x080000);
  7857.   deco16_sprite_decode(DrvGfxROM2, 0x100000);
  7858.   deco16_sprite_decode(DrvGfxROM3, 0x200000);
  7859.  }
  7860.  
  7861.  deco16Init(0, 1, 1);
  7862.  deco16_set_graphics(DrvGfxROM0, 0x20000 * 2, DrvGfxROM1, 0x080000 * 2, DrvGfxROM2, 0x100000 * 2);
  7863.  deco16_set_global_offsets(0, 8);
  7864.  deco16_set_scroll_offs(3, 1, 2, 0);
  7865.  deco16_set_scroll_offs(2, 1, 2, 0);
  7866.  deco16_set_color_base(2, 0x200 + 0x000);
  7867.  deco16_set_color_base(3, 0x200 + 0x300);
  7868.  deco16_set_bank_callback(2, cninja_bank_callback);
  7869.  deco16_set_bank_callback(3, cninja_bank_callback);
  7870.  
  7871.  SekInit(0, 0x68000);
  7872.  SekOpen(0);
  7873.  SekMapMemory(Drv68KROM, 0x000000, 0x0bffff, ((1) | (4)));
  7874.  SekMapMemory(DrvSprRAM, 0x138000, 0x1387ff, ((1) | (2) | (4)));
  7875.  SekMapMemory(deco16_pf_ram[0], 0x144000, 0x144fff, ((1) | (2) | (4)));
  7876.  SekMapMemory(deco16_pf_ram[1], 0x146000, 0x146fff, ((1) | (2) | (4)));
  7877.  SekMapMemory(deco16_pf_rowscroll[0], 0x14c000, 0x14c7ff, ((1) | (2) | (4)));
  7878.  SekMapMemory(deco16_pf_rowscroll[1], 0x14e000, 0x14e7ff, ((1) | (2) | (4)));
  7879.  SekMapMemory(deco16_pf_ram[2], 0x154000, 0x154fff, ((1) | (2) | (4)));
  7880.  SekMapMemory(deco16_pf_ram[3], 0x156000, 0x156fff, ((1) | (2) | (4)));
  7881.  SekMapMemory(deco16_pf_rowscroll[2], 0x15c000, 0x15c7ff, ((1) | (2) | (4)));
  7882.  SekMapMemory(deco16_pf_rowscroll[3], 0x15e000, 0x15e7ff, ((1) | (2) | (4)));
  7883.  SekMapMemory(Drv68KRAM, 0x180000, 0x187fff, ((1) | (2) | (4)));
  7884.  SekMapMemory(DrvPalRAM, 0x19c000, 0x19dfff, ((1) | (2) | (4)));
  7885.  SekSetWriteWordHandler(0, cninja_main_write_word);
  7886.  SekSetWriteByteHandler(0, cninja_main_write_byte);
  7887.  SekSetReadWordHandler(0, cninja_main_read_word);
  7888.  SekSetReadByteHandler(0, cninja_main_read_byte);
  7889.  SekClose();
  7890.  
  7891.  has_z80 = 1;
  7892.  
  7893.  ZetInit(0);
  7894.  ZetOpen(0);
  7895.  ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
  7896.  ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
  7897.  ZetMapArea(0x8000, 0x87ff, 0, DrvZ80RAM);
  7898.  ZetMapArea(0x8000, 0x87ff, 1, DrvZ80RAM);
  7899.  ZetMapArea(0x8000, 0x87ff, 2, DrvZ80RAM);
  7900.  ZetSetWriteHandler(stoneage_sound_write);
  7901.  ZetSetReadHandler(stoneage_sound_read);
  7902.  ZetMemEnd();
  7903.  ZetClose();
  7904.  
  7905.  BurnYM2151Init(3580000, 45.0);
  7906.  YM2151SetIrqHandler(0, &DrvYM2151IrqHandler);
  7907.  
  7908.  MSM6295Init(0, 1006875 / 132, 75.0, 1);
  7909.  MSM6295Init(1, 2013750 / 132, 60.0, 1);
  7910.  
  7911.  GenericTilesInit();
  7912.  
  7913.  DrvDoReset();
  7914.  
  7915.  return 0;
  7916. }
  7917.  
  7918. static INT32 StoneageInit()
  7919. {
  7920.  BurnSetRefreshRate(58.00);
  7921.  
  7922.  AllMem = __null;
  7923.  MemIndex();
  7924.  INT32 nLen = MemEnd - (UINT8 *)0;
  7925.  if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == __null) return 1;
  7926.  memset(AllMem, 0, nLen);
  7927.  MemIndex();
  7928.  
  7929.  {
  7930.   if (BurnLoadRom(Drv68KROM + 0x00001, 0, 2)) return 1;
  7931.   if (BurnLoadRom(Drv68KROM + 0x00000, 1, 2)) return 1;
  7932.   if (BurnLoadRom(Drv68KROM + 0x40001, 2, 2)) return 1;
  7933.   if (BurnLoadRom(Drv68KROM + 0x40000, 3, 2)) return 1;
  7934.   if (BurnLoadRom(Drv68KROM + 0x80001, 4, 2)) return 1;
  7935.   if (BurnLoadRom(Drv68KROM + 0x80000, 5, 2)) return 1;
  7936.  
  7937.   if (BurnLoadRom(DrvZ80ROM + 0x00000, 6, 1)) return 1;
  7938.  
  7939.   if (BurnLoadRom(DrvGfxROM0 + 0x00001, 7, 2)) return 1;
  7940.   if (BurnLoadRom(DrvGfxROM0 + 0x00000, 8, 2)) return 1;
  7941.  
  7942.   if (BurnLoadRom(DrvGfxROM1 + 0x00000, 9, 1)) return 1;
  7943.  
  7944.   if (BurnLoadRom(DrvGfxROM2 + 0x00000, 10, 1)) return 1;
  7945.   if (BurnLoadRom(DrvGfxROM2 + 0x80000, 11, 1)) return 1;
  7946.  
  7947.   for (INT32 i = 0; i < 0x40000; i++) {
  7948.    INT32 n = DrvGfxROM2[i + 0x40000];
  7949.    DrvGfxROM2[i + 0x40000] = DrvGfxROM2[i + 0x80000];
  7950.    DrvGfxROM2[i + 0x80000] = n;
  7951.   }
  7952.  
  7953.  
  7954.   if (BurnLoadRom(DrvGfxROM3 + 0x000000, 12, 2)) return 1;
  7955.   if (BurnLoadRom(DrvGfxROM3 + 0x000001, 13, 2)) return 1;
  7956.   if (BurnLoadRom(DrvGfxROM3 + 0x100000, 14, 2)) return 1;
  7957.   if (BurnLoadRom(DrvGfxROM3 + 0x100001, 15, 2)) return 1;
  7958.  
  7959.   BurnByteswap(DrvGfxROM3, 0x200000);
  7960.  
  7961.   if (BurnLoadRom(DrvSndROM0 + 0x00000, 16, 1)) return 1;
  7962.  
  7963.   memset (DrvSndROM1, 0xff, 0x80000);
  7964.  
  7965.   deco16_tile_decode(DrvGfxROM0, DrvGfxROM0, 0x020000, 1);
  7966.   deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x080000, 0);
  7967.   deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x100000, 0);
  7968.  
  7969.   deco16_sprite_decode(DrvGfxROM3, 0x200000);
  7970.  }
  7971.  
  7972.  deco16Init(0, 1, 1);
  7973.  deco16_set_graphics(DrvGfxROM0, 0x20000 * 2, DrvGfxROM1, 0x080000 * 2, DrvGfxROM2, 0x100000 * 2);
  7974.  deco16_set_global_offsets(0, 8);
  7975.  deco16_set_scroll_offs(3, 1, 10, 0);
  7976.  deco16_set_scroll_offs(1, 1, 10, 0);
  7977.  deco16_set_scroll_offs(0, 1, -2, 0);
  7978.  deco16_set_color_base(2, 0x200 + 0x000);
  7979.  deco16_set_color_base(3, 0x200 + 0x300);
  7980.  deco16_set_bank_callback(2, cninja_bank_callback);
  7981.  deco16_set_bank_callback(3, cninja_bank_callback);
  7982.  
  7983.  SekInit(0, 0x68000);
  7984.  SekOpen(0);
  7985.  SekMapMemory(Drv68KROM, 0x000000, 0x0bffff, ((1) | (4)));
  7986.  SekMapMemory(deco16_pf_ram[0], 0x144000, 0x144fff, ((1) | (2) | (4)));
  7987.  SekMapMemory(deco16_pf_ram[1], 0x146000, 0x146fff, ((1) | (2) | (4)));
  7988.  SekMapMemory(deco16_pf_rowscroll[0], 0x14c000, 0x14c7ff, ((1) | (2) | (4)));
  7989.  SekMapMemory(deco16_pf_rowscroll[1], 0x14e000, 0x14e7ff, ((1) | (2) | (4)));
  7990.  SekMapMemory(deco16_pf_ram[2], 0x154000, 0x154fff, ((1) | (2) | (4)));
  7991.  SekMapMemory(deco16_pf_ram[3], 0x156000, 0x156fff, ((1) | (2) | (4)));
  7992.  SekMapMemory(deco16_pf_rowscroll[2], 0x15c000, 0x15c7ff, ((1) | (2) | (4)));
  7993.  SekMapMemory(deco16_pf_rowscroll[3], 0x15e000, 0x15e7ff, ((1) | (2) | (4)));
  7994.  SekMapMemory(Drv68KRAM, 0x184000, 0x187fff, ((1) | (2) | (4)));
  7995.  SekMapMemory(DrvPalRAM, 0x19c000, 0x19dfff, ((1) | (2) | (4)));
  7996.  SekMapMemory(DrvSprRAM, 0x1a4000, 0x1a47ff, ((1) | (2) | (4)));
  7997.  SekSetWriteWordHandler(0, cninja_main_write_word);
  7998.  SekSetWriteByteHandler(0, cninja_main_write_byte);
  7999.  SekSetReadWordHandler(0, cninja_main_read_word);
  8000.  SekSetReadByteHandler(0, cninja_main_read_byte);
  8001.  SekClose();
  8002.  
  8003.  has_z80 = 1;
  8004.  
  8005.  ZetInit(0);
  8006.  ZetOpen(0);
  8007.  ZetMapArea(0x0000, 0x7fff, 0, DrvZ80ROM);
  8008.  ZetMapArea(0x0000, 0x7fff, 2, DrvZ80ROM);
  8009.  ZetMapArea(0x8000, 0x87ff, 0, DrvZ80RAM);
  8010.  ZetMapArea(0x8000, 0x87ff, 1, DrvZ80RAM);
  8011.  ZetMapArea(0x8000, 0x87ff, 2, DrvZ80RAM);
  8012.  ZetSetWriteHandler(stoneage_sound_write);
  8013.  ZetSetReadHandler(stoneage_sound_read);
  8014.  ZetMemEnd();
  8015.  ZetClose();
  8016.  
  8017.  MSM6295Init(0, 1006875 / 132, 75.0, 1);
  8018.  MSM6295Init(1, 2013750 / 132, 60.0, 1);
  8019.  
  8020.  BurnYM2151Init(3580000, 45.0);
  8021.  YM2151SetIrqHandler(0, &DrvYM2151IrqHandler);
  8022.  
  8023.  GenericTilesInit();
  8024.  
  8025.  DrvDoReset();
  8026.  
  8027.  return 0;
  8028. }
  8029.  
  8030. static INT32 Robocop2Init()
  8031. {
  8032.  BurnSetRefreshRate(58.00);
  8033.  
  8034.  AllMem = __null;
  8035.  MemIndex();
  8036.  INT32 nLen = MemEnd - (UINT8 *)0;
  8037.  if ((AllMem = (UINT8 *)BurnMalloc(nLen)) == __null) return 1;
  8038.  memset(AllMem, 0, nLen);
  8039.  MemIndex();
  8040.  
  8041.  {
  8042.   if (BurnLoadRom(Drv68KROM + 0x00001, 0, 2)) return 1;
  8043.   if (BurnLoadRom(Drv68KROM + 0x00000, 1, 2)) return 1;
  8044.   if (BurnLoadRom(Drv68KROM + 0x40001, 2, 2)) return 1;
  8045.   if (BurnLoadRom(Drv68KROM + 0x40000, 3, 2)) return 1;
  8046.   if (BurnLoadRom(Drv68KROM + 0x80001, 4, 2)) return 1;
  8047.   if (BurnLoadRom(Drv68KROM + 0x80000, 5, 2)) return 1;
  8048.   if (BurnLoadRom(Drv68KROM + 0xc0001, 6, 2)) return 1;
  8049.   if (BurnLoadRom(Drv68KROM + 0xc0000, 7, 2)) return 1;
  8050.  
  8051.   if (BurnLoadRom(DrvHucROM + 0x00000, 8, 1)) return 1;
  8052.  
  8053.   if (BurnLoadRom(DrvGfxROM0 + 0x00001, 9, 2)) return 1;
  8054.   if (BurnLoadRom(DrvGfxROM0 + 0x00000, 10, 2)) return 1;
  8055.  
  8056.   if (BurnLoadRom(DrvGfxROM1 + 0x00000, 11, 1)) return 1;
  8057.   if (BurnLoadRom(DrvGfxROM1 + 0x80000, 12, 1)) return 1;
  8058.  
  8059.   for (INT32 i = 0; i < 0x40000; i++) {
  8060.    INT32 n = DrvGfxROM1[i + 0x40000];
  8061.    DrvGfxROM1[i + 0x40000] = DrvGfxROM1[i + 0x80000];
  8062.    DrvGfxROM1[i + 0x80000] = n;
  8063.   }
  8064.  
  8065.   if (BurnLoadRom(DrvGfxROM3 + 0x000000, 13, 1)) return 1;
  8066.   memcpy (DrvGfxROM2 + 0x000000, DrvGfxROM3 + 0x000000, 0x040000);
  8067.   memcpy (DrvGfxROM2 + 0x0c0000, DrvGfxROM3 + 0x040000, 0x040000);
  8068.  
  8069.   if (BurnLoadRom(DrvGfxROM3 + 0x000000, 14, 1)) return 1;
  8070.   memcpy (DrvGfxROM2 + 0x040000, DrvGfxROM3 + 0x000000, 0x040000);
  8071.   memcpy (DrvGfxROM2 + 0x100000, DrvGfxROM3 + 0x040000, 0x040000);
  8072.  
  8073.   if (BurnLoadRom(DrvGfxROM3 + 0x000000, 15, 1)) return 1;
  8074.   memcpy (DrvGfxROM2 + 0x080000, DrvGfxROM3 + 0x000000, 0x040000);
  8075.   memcpy (DrvGfxROM2 + 0x140000, DrvGfxROM3 + 0x040000, 0x040000);
  8076.  
  8077.   if (BurnLoadRom(DrvGfxROM3 + 0x000000, 16, 2)) return 1;
  8078.   if (BurnLoadRom(DrvGfxROM3 + 0x000001, 17, 2)) return 1;
  8079.   if (BurnLoadRom(DrvGfxROM3 + 0x100000, 18, 2)) return 1;
  8080.   if (BurnLoadRom(DrvGfxROM3 + 0x100001, 19, 2)) return 1;
  8081.   if (BurnLoadRom(DrvGfxROM3 + 0x200000, 20, 2)) return 1;
  8082.   if (BurnLoadRom(DrvGfxROM3 + 0x200001, 21, 2)) return 1;
  8083.  
  8084.   BurnByteswap(DrvGfxROM3, 0x300000);
  8085.  
  8086.   if (BurnLoadRom(DrvSndROM0 + 0x00000, 22, 1)) return 1;
  8087.  
  8088.   if (BurnLoadRom(DrvSndROM1 + 0x40000, 23, 1)) return 1;
  8089.  
  8090.   deco16_tile_decode(DrvGfxROM0, DrvGfxROM0, 0x020000, 1);
  8091.   deco16_tile_decode(DrvGfxROM1, DrvGfxROM1, 0x100000, 0);
  8092.   deco16_tile_decode(DrvGfxROM2, DrvGfxROM4, 0x180000, 2);
  8093.   deco16_tile_decode(DrvGfxROM2, DrvGfxROM2, 0x180000, 0);
  8094.  
  8095.   deco16_sprite_decode(DrvGfxROM3, 0x300000);
  8096.  }
  8097.  
  8098.  deco16Init(0, 0, 1);
  8099.  deco16_set_graphics(DrvGfxROM0, 0x20000 * 2, DrvGfxROM1, 0x100000 * 2, DrvGfxROM2, 0x180000 * 2);
  8100.  deco16_set_global_offsets(0, 8);
  8101.  
  8102.  deco16_set_color_base(2, 0x200 + 0x000);
  8103.  deco16_set_color_base(3, 0x200 + 0x300);
  8104.  deco16_set_bank_callback(1, robocop2_bank_callback);
  8105.  deco16_set_bank_callback(2, robocop2_bank_callback);
  8106.  deco16_set_bank_callback(3, robocop2_bank_callback);
  8107.  
  8108.  SekInit(0, 0x68000);
  8109.  SekOpen(0);
  8110.  SekMapMemory(Drv68KROM, 0x000000, 0x0fffff, ((1) | (4)));
  8111.  SekMapMemory(deco16_pf_ram[0], 0x144000, 0x144fff, ((1) | (2) | (4)));
  8112.  SekMapMemory(deco16_pf_ram[1], 0x146000, 0x146fff, ((1) | (2) | (4)));
  8113.  SekMapMemory(deco16_pf_rowscroll[0], 0x14c000, 0x14c7ff, ((1) | (2) | (4)));
  8114.  SekMapMemory(deco16_pf_rowscroll[1], 0x14e000, 0x14e7ff, ((1) | (2) | (4)));
  8115.  SekMapMemory(deco16_pf_ram[2], 0x154000, 0x154fff, ((1) | (2) | (4)));
  8116.  SekMapMemory(deco16_pf_ram[3], 0x156000, 0x156fff, ((1) | (2) | (4)));
  8117.  SekMapMemory(deco16_pf_rowscroll[2], 0x15c000, 0x15c7ff, ((1) | (2) | (4)));
  8118.  SekMapMemory(deco16_pf_rowscroll[3], 0x15e000, 0x15e7ff, ((1) | (2) | (4)));
  8119.  SekMapMemory(DrvSprRAM, 0x180000, 0x1807ff, ((1) | (2) | (4)));
  8120.  SekMapMemory(DrvPalRAM, 0x1a8000, 0x1a9fff, ((1) | (2) | (4)));
  8121.  SekMapMemory(Drv68KRAM, 0x1b8000, 0x1bbfff, ((1) | (2) | (4)));
  8122.  SekSetWriteWordHandler(0, robocop2_main_write_word);
  8123.  SekSetWriteByteHandler(0, robocop2_main_write_byte);
  8124.  SekSetReadWordHandler(0, robocop2_main_read_word);
  8125.  SekSetReadByteHandler(0, robocop2_main_read_byte);
  8126.  SekClose();
  8127.  
  8128.  deco16SoundInit(DrvHucROM, DrvHucRAM, 8055000, 1, DrvYM2151WritePort, 40.0, 1006875, 75.0, 2013750, 60.0);
  8129.  
  8130.  GenericTilesInit();
  8131.  
  8132.  DrvDoReset();
  8133.  
  8134.  return 0;
  8135. }
  8136.  
  8137. static INT32 DrvExit()
  8138. {
  8139.  GenericTilesExit();
  8140.  deco16Exit();
  8141.  
  8142.  SekExit();
  8143.  
  8144.  if (has_z80) {
  8145.   ZetExit();
  8146.   has_z80 = 0;
  8147.   MSM6295Exit(0);
  8148.   MSM6295Exit(1);
  8149.   BurnYM2151Exit();
  8150.  } else {
  8151.   deco16SoundExit();
  8152.  }
  8153.  
  8154.  _BurnFree(AllMem); AllMem = __null;;
  8155.  
  8156.  MSM6295ROM = __null;
  8157.  
  8158.  return 0;
  8159. }
  8160.  
  8161. static void cninja_draw_sprites()
  8162. {
  8163.  UINT16 *buffered_spriteram = (UINT16*)DrvSprBuf;
  8164.  
  8165.  for (INT32 offs = 0x400 - 4; offs >=0 ; offs -= 4)
  8166.  {
  8167.   INT32 x, y, sprite, color, multi, flipx, flipy, inc, flash, mult, pri = 0;
  8168.   sprite = buffered_spriteram[offs + 1];
  8169.   if (!sprite)
  8170.    continue;
  8171.  
  8172.   x = buffered_spriteram[offs + 2];
  8173.  
  8174.   switch (x & 0xc000)
  8175.   {
  8176.    case 0x0000: pri = 0; break;
  8177.    case 0x4000: pri = 0xf0; break;
  8178.    case 0x8000: pri = 0xf0 | 0xcc; break;
  8179.    case 0xc000: pri = 0xf0 | 0xcc; break;
  8180.   }
  8181.  
  8182.   y = buffered_spriteram[offs];
  8183.   flash = y & 0x1000;
  8184.   if (flash && (nCurrentFrame & 1))
  8185.    continue;
  8186.  
  8187.   color = (x >> 9) & 0x1f;
  8188.  
  8189.   flipx = y & 0x2000;
  8190.   flipy = y & 0x4000;
  8191.   multi = (1 << ((y & 0x0600) >> 9)) - 1;
  8192.  
  8193.   x = x & 0x01ff;
  8194.   y = y & 0x01ff;
  8195.   if (x >= nScreenWidth) x -= 512;
  8196.   if (y >= 256) y -= 512;
  8197.   x = 240 - x;
  8198.   y = 240 - y;
  8199.  
  8200.   sprite &= ~multi;
  8201.   if (flipy)
  8202.    inc = -1;
  8203.   else
  8204.   {
  8205.    sprite += multi;
  8206.    inc = 1;
  8207.   }
  8208.  
  8209.   if (*flipscreen)
  8210.   {
  8211.    y = 240 - y;
  8212.    x = (nScreenWidth - 16) - x;
  8213.    if (flipx) flipx = 0; else flipx = 1;
  8214.    if (flipy) flipy = 0; else flipy = 1;
  8215.    mult = 16;
  8216.   }
  8217.   else
  8218.    mult = -16;
  8219.  
  8220.   while (multi >= 0)
  8221.   {
  8222.    deco16_draw_prio_sprite(pTransDraw, DrvGfxROM3, sprite - multi * inc, (color << 4) + 0x300, x, y + mult * multi, flipx, flipy, pri);
  8223.  
  8224.    multi--;
  8225.   }
  8226.  }
  8227. }
  8228.  
  8229. static void cninjabl_draw_sprites()
  8230. {
  8231.  UINT16 *buffered_spriteram = (UINT16*)DrvSprBuf;
  8232.  INT32 offs;
  8233.  INT32 endoffs;
  8234.  
  8235.  endoffs = 0x400 - 4;
  8236.  for (offs = 0; offs < 0x400 - 4 ; offs += 4)
  8237.  {
  8238.   INT32 y = buffered_spriteram[offs + 1];
  8239.  
  8240.   if (y == 0x180)
  8241.   {
  8242.    endoffs = offs;
  8243.    offs = 0x400 - 4;
  8244.   }
  8245.  }
  8246.  
  8247.  for (offs = endoffs; offs >=0 ; offs -= 4)
  8248.  {
  8249.   INT32 x, y, sprite, colour, multi, fx, fy, inc, flash, mult, pri = 0;
  8250.  
  8251.   sprite = buffered_spriteram[offs + 0];
  8252.   y = buffered_spriteram[offs + 1];
  8253.  
  8254.   if (!sprite)
  8255.    continue;
  8256.  
  8257.   x = buffered_spriteram[offs + 2];
  8258.  
  8259.   switch (x & 0xc000)
  8260.   {
  8261.    case 0x0000: pri = 0; break;
  8262.    case 0x4000: pri = 0xf0; break;
  8263.    case 0x8000: pri = 0xf0 | 0xcc; break;
  8264.    case 0xc000: pri = 0xf0 | 0xcc; break;
  8265.   }
  8266.  
  8267.   flash = y & 0x1000;
  8268.   if (flash && (nCurrentFrame & 1))
  8269.    continue;
  8270.  
  8271.   colour = (x >> 9) & 0x1f;
  8272.  
  8273.   fx = y & 0x2000;
  8274.   fy = y & 0x4000;
  8275.  
  8276.   multi = (1 << ((y & 0x0600) >> 9)) - 1;
  8277.  
  8278.   y -= multi * 16;
  8279.   y += 4;
  8280.  
  8281.   x = x & 0x01ff;
  8282.   y = y & 0x01ff;
  8283.   if (x >= 256) x -= 512;
  8284.   if (y >= 256) y -= 512;
  8285.   x = 240 - x;
  8286.   y = 240 - y;
  8287.  
  8288.   if (fy)
  8289.    inc = -1;
  8290.   else
  8291.   {
  8292.    sprite += multi;
  8293.    inc = 1;
  8294.   }
  8295.  
  8296.   if (*flipscreen)
  8297.   {
  8298.    y = 240 - y;
  8299.    x = 240 - x;
  8300.    if (fx) fx = 0; else fx = 1;
  8301.    if (fy) fy = 0; else fy = 1;
  8302.    mult = 16;
  8303.   }
  8304.   else
  8305.    mult = -16;
  8306.  
  8307.   while (multi >= 0)
  8308.   {
  8309.    deco16_draw_prio_sprite(pTransDraw, DrvGfxROM3, sprite - multi * inc, (colour << 4) + 0x300, x, y + mult * multi, fx, fy, pri);
  8310.  
  8311.    multi--;
  8312.   }
  8313.  }
  8314. }
  8315.  
  8316. static void mutantf_draw_sprites(UINT8 *ram, UINT8 *gfx, INT32 colbank, INT32 gfxbank)
  8317. {
  8318.  UINT16 *spriteptr = (UINT16*)ram;
  8319.  
  8320.  INT32 offs, end, inc;
  8321.  
  8322.  if (gfxbank == 4)
  8323.  {
  8324.   offs = 0;
  8325.   end = 0x400;
  8326.   inc = 4;
  8327.  }
  8328.  else
  8329.  {
  8330.   offs = 0x3fc;
  8331.   end = -4;
  8332.   inc = -4;
  8333.  }
  8334.  
  8335.  while (offs != end)
  8336.  {
  8337.   INT32 x, y, sprite, colour, fx, fy, w, h, sx, sy, x_mult, y_mult;
  8338.   INT32 alpha = 0xff;
  8339.  
  8340.   sprite = spriteptr[offs + 3];
  8341.   if (!sprite)
  8342.   {
  8343.    offs += inc;
  8344.    continue;
  8345.   }
  8346.  
  8347.   sx = spriteptr[offs + 1];
  8348.  
  8349.   h = (spriteptr[offs + 2] & 0xf000) >> 12;
  8350.   w = (spriteptr[offs + 2] & 0x0f00) >> 8;
  8351.  
  8352.   sy = spriteptr[offs];
  8353.   if ((sy & 0x2000) && (nCurrentFrame & 1))
  8354.   {
  8355.    offs += inc;
  8356.    continue;
  8357.   }
  8358.  
  8359.   colour = (spriteptr[offs + 2] >> 0) & 0x1f;
  8360.  
  8361.   if (gfxbank == 4)
  8362.   {
  8363.    alpha = 0x80;
  8364.    colour &= 0xf;
  8365.   }
  8366.  
  8367.   fx = (spriteptr[offs + 0] & 0x4000);
  8368.   fy = (spriteptr[offs + 0] & 0x8000);
  8369.  
  8370.   if (*flipscreen)
  8371.   {
  8372.    if (fx) fx = 0; else fx = 1;
  8373.    if (fy) fy = 0; else fy = 1;
  8374.  
  8375.    sx = sx & 0x01ff;
  8376.    sy = sy & 0x01ff;
  8377.    if (sx > 0x180) sx = -(0x200 - sx);
  8378.    if (sy > 0x180) sy = -(0x200 - sy);
  8379.  
  8380.    if (fx) { x_mult = -16; sx += 16 * w; } else { x_mult = 16; sx -= 16; }
  8381.    if (fy) { y_mult = -16; sy += 16 * h; } else { y_mult = 16; sy -= 16; }
  8382.   }
  8383.   else
  8384.   {
  8385.    sx = sx & 0x01ff;
  8386.    sy = sy & 0x01ff;
  8387.    if (sx & 0x100) sx = -(0x100 - (sx & 0xff));
  8388.    if (sy & 0x100) sy = -(0x100 - (sy & 0xff));
  8389.    sx = 304 - sx;
  8390.    sy = 240 - sy;
  8391.    if (sx >= 432) sx -= 512;
  8392.    if (sy >= 384) sy -= 512;
  8393.    if (fx) { x_mult = -16; sx += 16; } else { x_mult = 16; sx -= 16*w; }
  8394.    if (fy) { y_mult = -16; sy += 16; } else { y_mult = 16; sy -= 16*h; }
  8395.   }
  8396.  
  8397.   for (x = 0; x < w; x++)
  8398.   {
  8399.    for (y = 0; y < h; y++)
  8400.    {
  8401.  
  8402.     deco16_draw_prio_sprite(pTransDraw, gfx, sprite + y + h * x, (colour << 4) + colbank, sx + x_mult * (w-x), sy + y_mult * (h-y), fx, fy, 0);
  8403.    }
  8404.   }
  8405.   offs += inc;
  8406.  }
  8407. }
  8408.  
  8409. static INT32 CninjaDraw()
  8410. {
  8411.  
  8412.   deco16_palette_recalculate(DrvPalette, DrvPalRAM);
  8413.   DrvRecalc = 0;
  8414.  
  8415.  
  8416.  deco16_pf12_update();
  8417.  deco16_pf34_update();
  8418.  
  8419.  for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
  8420.   pTransDraw[i] = 0x200;
  8421.  }
  8422.  
  8423.  deco16_clear_prio_map();
  8424.  
  8425.  if (nSpriteEnable & 1) deco16_draw_layer(3, pTransDraw, ((0x01) & 0xff) | 0x010000);
  8426.  if (nSpriteEnable & 2) deco16_draw_layer(2, pTransDraw, ((0x02) & 0xff));
  8427.  if (nSpriteEnable & 4) deco16_draw_layer(1, pTransDraw, ((0x02) & 0xff) | 0x000000);
  8428.  if (nSpriteEnable & 8) deco16_draw_layer(1, pTransDraw, ((0x04) & 0xff) | 0x000100);
  8429.  
  8430.  cninja_draw_sprites();
  8431.  
  8432.  if (nSpriteEnable & 16) deco16_draw_layer(0, pTransDraw, 0);
  8433.  
  8434.  BurnTransferCopy(DrvPalette);
  8435.  
  8436.  return 0;
  8437. }
  8438.  
  8439. static INT32 CninjablDraw()
  8440. {
  8441.  
  8442.   deco16_palette_recalculate(DrvPalette, DrvPalRAM);
  8443.   DrvRecalc = 0;
  8444.  
  8445.  
  8446.  deco16_pf12_update();
  8447.  deco16_pf34_update();
  8448.  
  8449.  for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
  8450.   pTransDraw[i] = 0x200;
  8451.  }
  8452.  
  8453.  deco16_clear_prio_map();
  8454.  
  8455.  if (nSpriteEnable & 1) deco16_draw_layer(3, pTransDraw, ((0x01) & 0xff) | 0x010000);
  8456.  if (nSpriteEnable & 2) deco16_draw_layer(2, pTransDraw, ((0x02) & 0xff));
  8457.  if (nSpriteEnable & 4) deco16_draw_layer(1, pTransDraw, ((0x02) & 0xff) | 0x000000);
  8458.  if (nSpriteEnable & 8) deco16_draw_layer(1, pTransDraw, ((0x04) & 0xff) | 0x000100);
  8459.  
  8460.  cninjabl_draw_sprites();
  8461.  
  8462.  if (nSpriteEnable & 16) deco16_draw_layer(0, pTransDraw, 0);
  8463.  
  8464.  BurnTransferCopy(DrvPalette);
  8465.  
  8466.  return 0;
  8467. }
  8468.  
  8469. static INT32 EdrandyDraw()
  8470. {
  8471.  
  8472.   deco16_palette_recalculate(DrvPalette, DrvPalRAM);
  8473.   DrvRecalc = 0;
  8474.  
  8475.  
  8476.  deco16_pf12_update();
  8477.  deco16_pf34_update();
  8478.  
  8479.  for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
  8480.   pTransDraw[i] = 0;
  8481.  }
  8482.  
  8483.  deco16_clear_prio_map();
  8484.  
  8485.  if (nSpriteEnable & 1) deco16_draw_layer(3, pTransDraw, ((0x01) & 0xff) | 0x010000);
  8486.  if (nSpriteEnable & 2) deco16_draw_layer(2, pTransDraw, ((0x02) & 0xff));
  8487.  if (nSpriteEnable & 4) deco16_draw_layer(1, pTransDraw, ((0x04) & 0xff));
  8488.  
  8489.  cninja_draw_sprites();
  8490.  
  8491.  if (nSpriteEnable & 8) deco16_draw_layer(0, pTransDraw, 0);
  8492.  
  8493.  BurnTransferCopy(DrvPalette);
  8494.  
  8495.  return 0;
  8496. }
  8497.  
  8498. static INT32 Robocop2Draw()
  8499. {
  8500.  
  8501.   deco16_palette_recalculate(DrvPalette, DrvPalRAM);
  8502.   DrvRecalc = 0;
  8503.  
  8504.  
  8505.  deco16_pf12_update();
  8506.  deco16_pf34_update();
  8507.  
  8508.  for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
  8509.   pTransDraw[i] = 0x200;
  8510.  }
  8511.  
  8512.  deco16_clear_prio_map();
  8513.  
  8514.  INT32 layer_8bpp = 0;
  8515.  
  8516.  if (deco16_priority & 4)
  8517.  {
  8518.   deco16_set_color_mask(2, 0);
  8519.   deco16_set_color_mask(3, 0);
  8520.   deco16_set_graphics(2, DrvGfxROM4, 0x100000, 16);
  8521.   layer_8bpp = 0x100000;
  8522.  }
  8523.  else
  8524.  {
  8525.   deco16_set_color_mask(2, 0xf);
  8526.   deco16_set_color_mask(3, 0xf);
  8527.   deco16_set_graphics(2, DrvGfxROM2, 0x300000, 16);
  8528.  
  8529.   if (nSpriteEnable & 1) deco16_draw_layer(3, pTransDraw, 0x010000 | ((0x01) & 0xff));
  8530.  }
  8531.  
  8532.  if (deco16_priority & 8) {
  8533.   if (nSpriteEnable & 2) deco16_draw_layer(1, pTransDraw, ((0x02) & 0xff));
  8534.   if (nSpriteEnable & 4) deco16_draw_layer(2, pTransDraw, ((0x04) & 0xff) | layer_8bpp);
  8535.  } else {
  8536.   if (nSpriteEnable & 2) deco16_draw_layer(2, pTransDraw, ((0x02) & 0xff) | layer_8bpp);
  8537.   if (nSpriteEnable & 4) deco16_draw_layer(1, pTransDraw, ((0x04) & 0xff));
  8538.  }
  8539.  
  8540.  cninja_draw_sprites();
  8541.  
  8542.  if (nSpriteEnable & 8) deco16_draw_layer(0, pTransDraw, 0);
  8543.  
  8544.  BurnTransferCopy(DrvPalette);
  8545.  
  8546.  return 0;
  8547. }
  8548.  
  8549.  
  8550. static INT32 MutantfDraw()
  8551. {
  8552.  
  8553.   deco16_palette_recalculate(DrvPalette, DrvPalRAM);
  8554.   DrvRecalc = 0;
  8555.  
  8556.  
  8557.  deco16_pf12_update();
  8558.  deco16_pf34_update();
  8559.  
  8560.  for (INT32 i = 0; i < nScreenWidth * nScreenHeight; i++) {
  8561.   pTransDraw[i] = 0x400;
  8562.  }
  8563.  
  8564.  if (nSpriteEnable & 1) deco16_draw_layer(3, pTransDraw, 0x010000);
  8565.  if (nSpriteEnable & 2) deco16_draw_layer(1, pTransDraw, 0);
  8566.  if (nSpriteEnable & 4) deco16_draw_layer(2, pTransDraw, 0);
  8567.  
  8568.  if (deco16_priority & 1)
  8569.  {
  8570.   deco16_clear_prio_map();
  8571.   mutantf_draw_sprites(DrvSprBuf, DrvGfxROM3, 0x100, 3);
  8572.   deco16_clear_prio_map();
  8573.   mutantf_draw_sprites(DrvSprBuf1, DrvGfxROM4, 0x700, 4);
  8574.  }
  8575.  else
  8576.  {
  8577.   deco16_clear_prio_map();
  8578.   mutantf_draw_sprites(DrvSprBuf1, DrvGfxROM4, 0x700, 4);
  8579.   deco16_clear_prio_map();
  8580.   mutantf_draw_sprites(DrvSprBuf, DrvGfxROM3, 0x100, 3);
  8581.  }
  8582.  
  8583.  if (nSpriteEnable & 8) deco16_draw_layer(0, pTransDraw, 0);
  8584.  
  8585.  BurnTransferCopy(DrvPalette);
  8586.  
  8587.  return 0;
  8588. }
  8589.  
  8590. static INT32 CninjaFrame()
  8591. {
  8592.  if (DrvReset) {
  8593.   DrvDoReset();
  8594.  }
  8595.  
  8596.  {
  8597.   deco16_prot_inputs = DrvInputs;
  8598.   memset (DrvInputs, 0xff, 2 * sizeof(INT16));
  8599.   for (INT32 i = 0; i < 16; i++) {
  8600.    DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
  8601.    DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
  8602.   }
  8603.   DrvInputs[2] = (DrvDips[1] << 8) | (DrvDips[0] << 0);
  8604.  }
  8605.  
  8606.  INT32 nInterleave = 256;
  8607.  INT32 nSoundBufferPos = 0;
  8608.  INT32 nCyclesTotal[2] = { 12000000 / 58, 8055000 / 58 };
  8609.  INT32 nCyclesDone[2] = { 0, 0 };
  8610.  
  8611.  h6280NewFrame();
  8612.  
  8613.  SekOpen(0);
  8614.  h6280Open(0);
  8615.  
  8616.  deco16_vblank = 0;
  8617.  
  8618.  for (INT32 i = 0; i < nInterleave; i++)
  8619.  {
  8620.   nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
  8621.   nCyclesDone[1] += h6280Run(nCyclesTotal[1] / nInterleave);
  8622.  
  8623.   if (irq_timer == i) {
  8624.    SekSetIRQLine((irq_mask & 0x10) ? 3 : 4, (0x1000));
  8625.    irq_timer = -1;
  8626.   }
  8627.   if (i == 248) deco16_vblank = 0x08;
  8628.  
  8629.   INT32 nSegmentLength = nBurnSoundLen / nInterleave;
  8630.   INT16* pSoundBuf = SoundBuffer + (nSoundBufferPos << 1);
  8631.   deco16SoundUpdate(pSoundBuf, nSegmentLength);
  8632.   nSoundBufferPos += nSegmentLength;
  8633.  }
  8634.  
  8635.  SekSetIRQLine(5, (0x2000));
  8636.  BurnTimerEndFrame(nCyclesTotal[1]);
  8637.  
  8638.  if (pBurnSoundOut) {
  8639.   BurnYM2203Update(pBurnSoundOut, nBurnSoundLen);
  8640.  
  8641.   INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
  8642.   INT16* pSoundBuf = SoundBuffer + (nSoundBufferPos << 1);
  8643.  
  8644.   if (nSegmentLength) {
  8645.    deco16SoundUpdate(pSoundBuf, nSegmentLength);
  8646.   }
  8647.  
  8648.   for (INT32 i = 0; i < nBurnSoundLen; i++) {
  8649.    pBurnSoundOut[(i << 1) + 0] += SoundBuffer[(i << 1) + 0];
  8650.    pBurnSoundOut[(i << 1) + 1] += SoundBuffer[(i << 1) + 1];
  8651.   }
  8652.  }
  8653.  
  8654.  h6280Close();
  8655.  SekClose();
  8656.  
  8657.  if (pBurnDraw) {
  8658.   BurnDrvRedraw();
  8659.  }
  8660.  
  8661.  return 0;
  8662. }
  8663.  
  8664. static INT32 MutantfFrame()
  8665. {
  8666.  if (DrvReset) {
  8667.   DrvDoReset();
  8668.  }
  8669.  
  8670.  {
  8671.   deco16_prot_inputs = DrvInputs;
  8672.   memset (DrvInputs, 0xff, 2 * sizeof(INT16));
  8673.   for (INT32 i = 0; i < 16; i++) {
  8674.    DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
  8675.    DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
  8676.   }
  8677.   DrvInputs[2] = (DrvDips[1] << 8) | (DrvDips[0] << 0);
  8678.  }
  8679.  
  8680.  INT32 nInterleave = 256;
  8681.  INT32 nSoundBufferPos = 0;
  8682.  INT32 nCyclesTotal[2] = { 14000000 / 58, 8055000 / 58 };
  8683.  INT32 nCyclesDone[2] = { 0, 0 };
  8684.  
  8685.  h6280NewFrame();
  8686.  
  8687.  SekOpen(0);
  8688.  h6280Open(0);
  8689.  
  8690.  deco16_vblank = 0;
  8691.  
  8692.  for (INT32 i = 0; i < nInterleave; i++)
  8693.  {
  8694.   nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
  8695.   nCyclesDone[1] += h6280Run(nCyclesTotal[1] / nInterleave);
  8696.  
  8697.   if (i == 240) deco16_vblank = 0x08;
  8698.  
  8699.   if (pBurnSoundOut) {
  8700.    INT32 nSegmentLength = nBurnSoundLen / nInterleave;
  8701.    INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
  8702.    deco16SoundUpdate(pSoundBuf, nSegmentLength);
  8703.    nSoundBufferPos += nSegmentLength;
  8704.   }
  8705.  }
  8706.  
  8707.  SekSetIRQLine(6, (0x2000));
  8708.  
  8709.  if (pBurnSoundOut) {
  8710.   INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
  8711.   INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
  8712.  
  8713.   if (nSegmentLength) {
  8714.    deco16SoundUpdate(pSoundBuf, nSegmentLength);
  8715.   }
  8716.  }
  8717.  
  8718.  h6280Close();
  8719.  SekClose();
  8720.  
  8721.  if (pBurnDraw) {
  8722.   MutantfDraw();
  8723.  }
  8724.  
  8725.  return 0;
  8726. }
  8727.  
  8728. static INT32 StoneageFrame()
  8729. {
  8730.  if (DrvReset) {
  8731.   DrvDoReset();
  8732.  }
  8733.  
  8734.  {
  8735.   deco16_prot_inputs = DrvInputs;
  8736.   memset (DrvInputs, 0xff, 2 * sizeof(INT16));
  8737.   for (INT32 i = 0; i < 16; i++) {
  8738.    DrvInputs[0] ^= (DrvJoy1[i] & 1) << i;
  8739.    DrvInputs[1] ^= (DrvJoy2[i] & 1) << i;
  8740.   }
  8741.   DrvInputs[2] = (DrvDips[1] << 8) | (DrvDips[0] << 0);
  8742.  }
  8743.  
  8744.  INT32 nInterleave = 256;
  8745.  INT32 nSoundBufferPos = 0;
  8746.  INT32 nCyclesTotal[2] = { 12000000 / 58, 3579545 / 58 };
  8747.  INT32 nCyclesDone[2] = { 0, 0 };
  8748.  
  8749.  SekOpen(0);
  8750.  ZetOpen(0);
  8751.  
  8752.  deco16_vblank = 0;
  8753.  
  8754.  for (INT32 i = 0; i < nInterleave; i++)
  8755.  {
  8756.   nCyclesDone[0] += SekRun(nCyclesTotal[0] / nInterleave);
  8757.   nCyclesDone[1] += ZetRun(nCyclesTotal[1] / nInterleave);
  8758.  
  8759.   if (irq_timer == i) {
  8760.    SekSetIRQLine((irq_mask & 0x10) ? 3 : 4, (0x1000));
  8761.    irq_timer = -1;
  8762.   }
  8763.   if (i == 248) deco16_vblank = 0x08;
  8764.  
  8765.   if (pBurnSoundOut) {
  8766.    INT32 nSegmentLength = nBurnSoundLen / nInterleave;
  8767.    INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
  8768.    BurnYM2151Render(pSoundBuf, nSegmentLength);
  8769.    MSM6295Render(0, pSoundBuf, nSegmentLength);
  8770.    MSM6295Render(1, pSoundBuf, nSegmentLength);
  8771.    nSoundBufferPos += nSegmentLength;
  8772.   }
  8773.  }
  8774.  
  8775.  SekSetIRQLine(5, (0x2000));
  8776.  
  8777.  if (pBurnSoundOut) {
  8778.   INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
  8779.   INT16* pSoundBuf = pBurnSoundOut + (nSoundBufferPos << 1);
  8780.   if (nSegmentLength) {
  8781.    BurnYM2151Render(pSoundBuf, nSegmentLength);
  8782.    MSM6295Render(0, pSoundBuf, nSegmentLength);
  8783.    MSM6295Render(1, pSoundBuf, nSegmentLength);
  8784.   }
  8785.  }
  8786.  
  8787.  ZetClose();
  8788.  SekClose();
  8789.  
  8790.  if (pBurnDraw) {
  8791.   BurnDrvRedraw();
  8792.  }
  8793.  
  8794.  return 0;
  8795. }
  8796.  
  8797. static INT32 DrvScan(INT32 nAction, INT32 *pnMin)
  8798. {
  8799.  struct BurnArea ba;
  8800.  
  8801.  if (pnMin != __null) {
  8802.   *pnMin = 0x029722;
  8803.  }
  8804.  
  8805.  if (nAction & (32)) {
  8806.   memset(&ba, 0, sizeof(ba));
  8807.   ba.Data = AllRam;
  8808.   ba.nLen = RamEnd-AllRam;
  8809.   ba.szName = "All Ram";
  8810.   BurnAcb(&ba);
  8811.  }
  8812.  
  8813.  if (nAction & (64)) {
  8814.   SekScan(nAction);
  8815.  
  8816.   deco16SoundScan(nAction, pnMin);
  8817.  
  8818.   deco16Scan();
  8819.  
  8820.   ScanVar(&scanline, sizeof(scanline), "scanline");
  8821.   ScanVar(&irq_mask, sizeof(irq_mask), "irq_mask");
  8822.   ScanVar(&irq_timer, sizeof(irq_timer), "irq_timer");
  8823.  
  8824.   ScanVar(&DrvOkiBank, sizeof(DrvOkiBank), "DrvOkiBank");
  8825.   DrvYM2151WritePort(0, DrvOkiBank);
  8826.  }
  8827.  
  8828.  return 0;
  8829. }
  8830.  
  8831. static INT32 StoneageScan(INT32 nAction, INT32 *pnMin)
  8832. {
  8833.  struct BurnArea ba;
  8834.  
  8835.  if (pnMin != __null) {
  8836.   *pnMin = 0x029722;
  8837.  }
  8838.  
  8839.  if (nAction & (32)) {
  8840.   memset(&ba, 0, sizeof(ba));
  8841.   ba.Data = AllRam;
  8842.   ba.nLen = RamEnd-AllRam;
  8843.   ba.szName = "All Ram";
  8844.   BurnAcb(&ba);
  8845.  }
  8846.  
  8847.  if (nAction & (64)) {
  8848.   SekScan(nAction);
  8849.   ZetScan(nAction);
  8850.   BurnYM2151Scan(nAction);
  8851.   MSM6295Scan(0, nAction);
  8852.   MSM6295Scan(1, nAction);
  8853.  
  8854.   deco16Scan();
  8855.  
  8856.   ScanVar(&scanline, sizeof(scanline), "scanline");
  8857.   ScanVar(&irq_mask, sizeof(irq_mask), "irq_mask");
  8858.   ScanVar(&irq_timer, sizeof(irq_timer), "irq_timer");
  8859.  
  8860.   ScanVar(&DrvOkiBank, sizeof(DrvOkiBank), "DrvOkiBank");
  8861.  }
  8862.  
  8863.  return 0;
  8864. }
  8865.  
  8866.  
  8867.  
  8868.  
  8869. static struct BurnRomInfo cninjaRomDesc[] = {
  8870.  { "gn-02-3.1k", 0x020000, 0x39aea12a, 1 | (1 << 20) | (1 << 24) },
  8871.  { "gn-05-2.3k", 0x020000, 0x0f4360ef, 1 | (1 << 20) | (1 << 24) },
  8872.  { "gn-01-2.1j", 0x020000, 0xf740ef7e, 1 | (1 << 20) | (1 << 24) },
  8873.  { "gn-04-2.3j", 0x020000, 0xc98fcb62, 1 | (1 << 20) | (1 << 24) },
  8874.  { "gn-00.rom", 0x020000, 0x0b110b16, 1 | (1 << 20) | (1 << 24) },
  8875.  { "gn-03.rom", 0x020000, 0x1e28e697, 1 | (1 << 20) | (1 << 24) },
  8876.  
  8877.  { "gl-07.rom", 0x010000, 0xca8bef96, 2 | (1 << 20) | (1 << 24) },
  8878.  
  8879.  { "gl-08.rom", 0x010000, 0x33a2b400, 3 | (1 << 21) },
  8880.  { "gl-09.rom", 0x010000, 0x5a2d4752, 3 | (1 << 21) },
  8881.  
  8882.  { "mag-02.rom", 0x080000, 0xde89c69a, 4 | (1 << 21) },
  8883.  
  8884.  { "mag-00.rom", 0x080000, 0xa8f05d33, 5 | (1 << 21) },
  8885.  { "mag-01.rom", 0x080000, 0x5b399eed, 5 | (1 << 21) },
  8886.  
  8887.  { "mag-03.rom", 0x080000, 0x2220eb9f, 6 | (1 << 21) },
  8888.  { "mag-05.rom", 0x080000, 0x56a53254, 6 | (1 << 21) },
  8889.  { "mag-04.rom", 0x080000, 0x144b94cc, 6 | (1 << 21) },
  8890.  { "mag-06.rom", 0x080000, 0x82d44749, 6 | (1 << 21) },
  8891.  
  8892.  { "gl-06.rom", 0x020000, 0xd92e519d, 7 | (1 << 22) },
  8893.  
  8894.  { "mag-07.rom", 0x080000, 0x08eb5264, 8 | (1 << 22) },
  8895.  
  8896.  { "mb7122h.7v", 0x000400, 0xa1267336, 0 | (1 << 27) },
  8897. };
  8898.  
  8899. static struct BurnRomInfo* cninjaPickRom(UINT32 i) { if (i >= sizeof(cninjaRomDesc) / sizeof(cninjaRomDesc[0])) { return __null; } return cninjaRomDesc + i; }
  8900. static INT32 cninjaRomInfo(struct BurnRomInfo* pri, UINT32 i) { struct BurnRomInfo* por = cninjaPickRom(i); if (por == __null) { return 1; } if (pri) { pri->nLen = por->nLen; pri->nCrc = por->nCrc; pri->nType = por->nType; } return 0; } static INT32 cninjaRomName(char** pszName, UINT32 i, INT32 nAka) { struct BurnRomInfo *por = cninjaPickRom(i); if (por == __null) { return 1; } if (nAka) { return 1; } *pszName = por->szName; return 0; }
  8901.  
  8902. struct BurnDriver BurnDrvCninja = {
  8903.  "cninja", __null, __null, __null, "1991",
  8904.  "Caveman Ninja (World ver 4)\0", __null, "Data East Corporation", "DECO IC16",
  8905.  __null, __null, __null, __null,
  8906.  (1 << 0), 2, (0x13000000), (1 << 11), 0,
  8907.  __null, cninjaRomInfo, cninjaRomName, __null, __null, DrvInputInfo, CninjaDIPInfo,
  8908.  CninjaInit, DrvExit, CninjaFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800,
  8909.  256, 240, 4, 3
  8910. };
  8911.  
  8912.  
  8913.  
  8914. static struct BurnRomInfo cninjaaRomDesc[] = {
  8915.  { "1.1k", 0x020000, 0xa6c40959, 1 | (1 << 20) | (1 << 24) },
  8916.  { "4.3k", 0x020000, 0x2e01d1fd, 1 | (1 << 20) | (1 << 24) },
  8917.  { "2.2j", 0x020000, 0x18f0527c, 1 | (1 << 20) | (1 << 24) },
  8918.  { "5.3j", 0x020000, 0xea4b6d53, 1 | (1 << 20) | (1 << 24) },
  8919.  { "gn-00.rom", 0x020000, 0x0b110b16, 1 | (1 << 20) | (1 << 24) },
  8920.  { "gn-03.rom", 0x020000, 0x1e28e697, 1 | (1 << 20) | (1 << 24) },
  8921.  
  8922.  { "gl-07.rom", 0x010000, 0xca8bef96, 2 | (1 << 20) | (1 << 24) },
  8923.  
  8924.  { "gl-08.rom", 0x010000, 0x33a2b400, 3 | (1 << 21) },
  8925.  { "gl-09.rom", 0x010000, 0x5a2d4752, 3 | (1 << 21) },
  8926.  
  8927.  { "mag-02.rom", 0x080000, 0xde89c69a, 4 | (1 << 21) },
  8928.  
  8929.  { "mag-00.rom", 0x080000, 0xa8f05d33, 5 | (1 << 21) },
  8930.  { "mag-01.rom", 0x080000, 0x5b399eed, 5 | (1 << 21) },
  8931.  
  8932.  { "mag-03.rom", 0x080000, 0x2220eb9f, 6 | (1 << 21) },
  8933.  { "mag-05.rom", 0x080000, 0x56a53254, 6 | (1 << 21) },
  8934.  { "mag-04.rom", 0x080000, 0x144b94cc, 6 | (1 << 21) },
  8935.  { "mag-06.rom", 0x080000, 0x82d44749, 6 | (1 << 21) },
  8936.  
  8937.  { "gl-06.rom", 0x020000, 0xd92e519d, 7 | (1 << 22) },
  8938.  
  8939.  { "mag-07.rom", 0x080000, 0x08eb5264, 8 | (1 << 22) },
  8940.  
  8941.  { "mb7122h.7v", 0x000400, 0xa1267336, 0 | (1 << 27) },
  8942. };
  8943.  
  8944. static struct BurnRomInfo* cninjaaPickRom(UINT32 i) { if (i >= sizeof(cninjaaRomDesc) / sizeof(cninjaaRomDesc[0])) { return __null; } return cninjaaRomDesc + i; }
  8945. static INT32 cninjaaRomInfo(struct BurnRomInfo* pri, UINT32 i) { struct BurnRomInfo* por = cninjaaPickRom(i); if (por == __null) { return 1; } if (pri) { pri->nLen = por->nLen; pri->nCrc = por->nCrc; pri->nType = por->nType; } return 0; } static INT32 cninjaaRomName(char** pszName, UINT32 i, INT32 nAka) { struct BurnRomInfo *por = cninjaaPickRom(i); if (por == __null) { return 1; } if (nAka) { return 1; } *pszName = por->szName; return 0; }
  8946.  
  8947. struct BurnDriver BurnDrvCninjaa = {
  8948.  "cninjaa", "cninja", __null, __null, "1991",
  8949.  "Caveman Ninja (alternate)\0", __null, "Data East Corporation", "DECO IC16",
  8950.  __null, __null, __null, __null,
  8951.  (1 << 0) | (1 << 4), 2, (0x13000000), (1 << 11), 0,
  8952.  __null, cninjaaRomInfo, cninjaaRomName, __null, __null, DrvInputInfo, CninjaDIPInfo,
  8953.  CninjaInit, DrvExit, CninjaFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800,
  8954.  256, 240, 4, 3
  8955. };
  8956.  
  8957.  
  8958.  
  8959.  
  8960. static struct BurnRomInfo cninja1RomDesc[] = {
  8961.  { "gn-02.1k", 0x020000, 0xccc59524, 1 | (1 << 20) | (1 << 24) },
  8962.  { "gn-05.3k", 0x020000, 0xa002cbe4, 1 | (1 << 20) | (1 << 24) },
  8963.  { "gn-01.1j", 0x020000, 0x18f0527c, 1 | (1 << 20) | (1 << 24) },
  8964.  { "gn-04.3j", 0x020000, 0xea4b6d53, 1 | (1 << 20) | (1 << 24) },
  8965.  { "gn-00.rom", 0x020000, 0x0b110b16, 1 | (1 << 20) | (1 << 24) },
  8966.  { "gn-03.rom", 0x020000, 0x1e28e697, 1 | (1 << 20) | (1 << 24) },
  8967.  
  8968.  { "gl-07.rom", 0x010000, 0xca8bef96, 2 | (1 << 20) | (1 << 24) },
  8969.  
  8970.  { "gl-08.rom", 0x010000, 0x33a2b400, 3 | (1 << 21) },
  8971.  { "gl-09.rom", 0x010000, 0x5a2d4752, 3 | (1 << 21) },
  8972.  
  8973.  { "mag-02.rom", 0x080000, 0xde89c69a, 4 | (1 << 21) },
  8974.  
  8975.  { "mag-00.rom", 0x080000, 0xa8f05d33, 5 | (1 << 21) },
  8976.  { "mag-01.rom", 0x080000, 0x5b399eed, 5 | (1 << 21) },
  8977.  
  8978.  { "mag-03.rom", 0x080000, 0x2220eb9f, 6 | (1 << 21) },
  8979.  { "mag-05.rom", 0x080000, 0x56a53254, 6 | (1 << 21) },
  8980.  { "mag-04.rom", 0x080000, 0x144b94cc, 6 | (1 << 21) },
  8981.  { "mag-06.rom", 0x080000, 0x82d44749, 6 | (1 << 21) },
  8982.  
  8983.  { "gl-06.rom", 0x020000, 0xd92e519d, 7 | (1 << 22) },
  8984.  
  8985.  { "mag-07.rom", 0x080000, 0x08eb5264, 8 | (1 << 22) },
  8986.  
  8987.  { "mb7122h.7v", 0x000400, 0xa1267336, 0 | (1 << 27) },
  8988. };
  8989.  
  8990. static struct BurnRomInfo* cninja1PickRom(UINT32 i) { if (i >= sizeof(cninja1RomDesc) / sizeof(cninja1RomDesc[0])) { return __null; } return cninja1RomDesc + i; }
  8991. static INT32 cninja1RomInfo(struct BurnRomInfo* pri, UINT32 i) { struct BurnRomInfo* por = cninja1PickRom(i); if (por == __null) { return 1; } if (pri) { pri->nLen = por->nLen; pri->nCrc = por->nCrc; pri->nType = por->nType; } return 0; } static INT32 cninja1RomName(char** pszName, UINT32 i, INT32 nAka) { struct BurnRomInfo *por = cninja1PickRom(i); if (por == __null) { return 1; } if (nAka) { return 1; } *pszName = por->szName; return 0; }
  8992.  
  8993. struct BurnDriver BurnDrvCninja1 = {
  8994.  "cninja1", "cninja", __null, __null, "1991",
  8995.  "Caveman Ninja (World ver 1)\0", __null, "Data East Corporation", "DECO IC16",
  8996.  __null, __null, __null, __null,
  8997.  (1 << 0) | (1 << 4), 2, (0x13000000), (1 << 11), 0,
  8998.  __null, cninja1RomInfo, cninja1RomName, __null, __null, DrvInputInfo, CninjaDIPInfo,
  8999.  CninjaInit, DrvExit, CninjaFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800,
  9000.  256, 240, 4, 3
  9001. };
  9002.  
  9003.  
  9004.  
  9005.  
  9006. static struct BurnRomInfo cninjauRomDesc[] = {
  9007.  { "gm-02-3.1k", 0x020000, 0xd931c3b1, 1 | (1 << 20) | (1 << 24) },
  9008.  { "gm-05-2.3k", 0x020000, 0x7417d3fb, 1 | (1 << 20) | (1 << 24) },
  9009.  { "gm-01-2.1j", 0x020000, 0x72041f7e, 1 | (1 << 20) | (1 << 24) },
  9010.  { "gm-04-2.3j", 0x020000, 0x2104d005, 1 | (1 << 20) | (1 << 24) },
  9011.  { "gn-00.rom", 0x020000, 0x0b110b16, 1 | (1 << 20) | (1 << 24) },
  9012.  { "gn-03.rom", 0x020000, 0x1e28e697, 1 | (1 << 20) | (1 << 24) },
  9013.  
  9014.  { "gl-07.rom", 0x010000, 0xca8bef96, 2 | (1 << 20) | (1 << 24) },
  9015.  
  9016.  { "gl-08.rom", 0x010000, 0x33a2b400, 3 | (1 << 21) },
  9017.  { "gl-09.rom", 0x010000, 0x5a2d4752, 3 | (1 << 21) },
  9018.  
  9019.  { "mag-02.rom", 0x080000, 0xde89c69a, 4 | (1 << 21) },
  9020.  
  9021.  { "mag-00.rom", 0x080000, 0xa8f05d33, 5 | (1 << 21) },
  9022.  { "mag-01.rom", 0x080000, 0x5b399eed, 5 | (1 << 21) },
  9023.  
  9024.  { "mag-03.rom", 0x080000, 0x2220eb9f, 6 | (1 << 21) },
  9025.  { "mag-05.rom", 0x080000, 0x56a53254, 6 | (1 << 21) },
  9026.  { "mag-04.rom", 0x080000, 0x144b94cc, 6 | (1 << 21) },
  9027.  { "mag-06.rom", 0x080000, 0x82d44749, 6 | (1 << 21) },
  9028.  
  9029.  { "gl-06.rom", 0x020000, 0xd92e519d, 7 | (1 << 22) },
  9030.  
  9031.  { "mag-07.rom", 0x080000, 0x08eb5264, 8 | (1 << 22) },
  9032.  
  9033.  { "mb7122h.7v", 0x000400, 0xa1267336, 0 | (1 << 27) },
  9034. };
  9035.  
  9036. static struct BurnRomInfo* cninjauPickRom(UINT32 i) { if (i >= sizeof(cninjauRomDesc) / sizeof(cninjauRomDesc[0])) { return __null; } return cninjauRomDesc + i; }
  9037. static INT32 cninjauRomInfo(struct BurnRomInfo* pri, UINT32 i) { struct BurnRomInfo* por = cninjauPickRom(i); if (por == __null) { return 1; } if (pri) { pri->nLen = por->nLen; pri->nCrc = por->nCrc; pri->nType = por->nType; } return 0; } static INT32 cninjauRomName(char** pszName, UINT32 i, INT32 nAka) { struct BurnRomInfo *por = cninjauPickRom(i); if (por == __null) { return 1; } if (nAka) { return 1; } *pszName = por->szName; return 0; }
  9038.  
  9039. struct BurnDriver BurnDrvCninjau = {
  9040.  "cninjau", "cninja", __null, __null, "1991",
  9041.  "Caveman Ninja (US ver 4)\0", __null, "Data East Corporation", "DECO IC16",
  9042.  __null, __null, __null, __null,
  9043.  (1 << 0) | (1 << 4), 2, (0x13000000), (1 << 11), 0,
  9044.  __null, cninjauRomInfo, cninjauRomName, __null, __null, DrvInputInfo, CninjauDIPInfo,
  9045.  CninjaInit, DrvExit, CninjaFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800,
  9046.  256, 240, 4, 3
  9047. };
  9048.  
  9049.  
  9050.  
  9051.  
  9052. static struct BurnRomInfo joemacRomDesc[] = {
  9053.  { "gl-02-2.1k", 0x020000, 0x80da12e2, 1 | (1 << 20) | (1 << 24) },
  9054.  { "gl-05-2.3k", 0x020000, 0xfe4dbbbb, 1 | (1 << 20) | (1 << 24) },
  9055.  { "gl-01-2.1j", 0x020000, 0x0b245307, 1 | (1 << 20) | (1 << 24) },
  9056.  { "gl-04-2.3j", 0x020000, 0x1b331f61, 1 | (1 << 20) | (1 << 24) },
  9057.  { "gn-00.rom", 0x020000, 0x0b110b16, 1 | (1 << 20) | (1 << 24) },
  9058.  { "gn-03.rom", 0x020000, 0x1e28e697, 1 | (1 << 20) | (1 << 24) },
  9059.  
  9060.  { "gl-07.rom", 0x010000, 0xca8bef96, 2 | (1 << 20) | (1 << 24) },
  9061.  
  9062.  { "gl-08.rom", 0x010000, 0x33a2b400, 3 | (1 << 21) },
  9063.  { "gl-09.rom", 0x010000, 0x5a2d4752, 3 | (1 << 21) },
  9064.  
  9065.  { "mag-02.rom", 0x080000, 0xde89c69a, 4 | (1 << 21) },
  9066.  
  9067.  { "mag-00.rom", 0x080000, 0xa8f05d33, 5 | (1 << 21) },
  9068.  { "mag-01.rom", 0x080000, 0x5b399eed, 5 | (1 << 21) },
  9069.  
  9070.  { "mag-03.rom", 0x080000, 0x2220eb9f, 6 | (1 << 21) },
  9071.  { "mag-05.rom", 0x080000, 0x56a53254, 6 | (1 << 21) },
  9072.  { "mag-04.rom", 0x080000, 0x144b94cc, 6 | (1 << 21) },
  9073.  { "mag-06.rom", 0x080000, 0x82d44749, 6 | (1 << 21) },
  9074.  
  9075.  { "gl-06.rom", 0x020000, 0xd92e519d, 7 | (1 << 22) },
  9076.  
  9077.  { "mag-07.rom", 0x080000, 0x08eb5264, 8 | (1 << 22) },
  9078.  
  9079.  { "mb7122h.7v", 0x000400, 0xa1267336, 0 | (1 << 27) },
  9080. };
  9081.  
  9082. static struct BurnRomInfo* joemacPickRom(UINT32 i) { if (i >= sizeof(joemacRomDesc) / sizeof(joemacRomDesc[0])) { return __null; } return joemacRomDesc + i; }
  9083. static INT32 joemacRomInfo(struct BurnRomInfo* pri, UINT32 i) { struct BurnRomInfo* por = joemacPickRom(i); if (por == __null) { return 1; } if (pri) { pri->nLen = por->nLen; pri->nCrc = por->nCrc; pri->nType = por->nType; } return 0; } static INT32 joemacRomName(char** pszName, UINT32 i, INT32 nAka) { struct BurnRomInfo *por = joemacPickRom(i); if (por == __null) { return 1; } if (nAka) { return 1; } *pszName = por->szName; return 0; }
  9084.  
  9085. struct BurnDriver BurnDrvJoemac = {
  9086.  "joemac", "cninja", __null, __null, "1991",
  9087.  "Tatakae Genshizin Joe & Mac (Japan ver 1)\0", __null, "Data East Corporation", "DECO IC16",
  9088.  __null, __null, __null, __null,
  9089.  (1 << 0) | (1 << 4), 2, (0x13000000), (1 << 11), 0,
  9090.  __null, joemacRomInfo, joemacRomName, __null, __null, DrvInputInfo, CninjaDIPInfo,
  9091.  CninjaInit, DrvExit, CninjaFrame, CninjaDraw, DrvScan, &DrvRecalc, 0x800,
  9092.  256, 240, 4, 3
  9093. };
  9094.  
  9095.  
  9096.  
  9097.  
  9098. static struct BurnRomInfo stoneageRomDesc[] = {
  9099.  { "sa_1_019.bin", 0x020000, 0x7fb8c44f, 1 | (1 << 20) | (1 << 24) },
  9100.  { "sa_1_033.bin", 0x020000, 0x961c752b, 1 | (1 << 20) | (1 << 24) },
  9101.  { "sa_1_018.bin", 0x020000, 0xa4043022, 1 | (1 << 20) | (1 << 24) },
  9102.  { "sa_1_032.bin", 0x020000, 0xf52a3286, 1 | (1 << 20) | (1 << 24) },
  9103.  { "sa_1_017.bin", 0x020000, 0x08d6397a, 1 | (1 << 20) | (1 << 24) },
  9104.  { "sa_1_031.bin", 0x020000, 0x103079f5, 1 | (1 << 20) | (1 << 24) },
  9105.  
  9106.  { "sa_1_012.bin", 0x010000, 0x56058934, 2 | (1 << 20) | (1 << 24) },
  9107.  
  9108.  { "gl-08.rom", 0x010000, 0x33a2b400, 3 | (1 << 21) },
  9109.  { "gl-09.rom", 0x010000, 0x5a2d4752, 3 | (1 << 21) },
  9110.  
  9111.  { "mag-02.rom", 0x080000, 0xde89c69a, 4 | (1 << 21) },
  9112.  
  9113.  { "mag-00.rom", 0x080000, 0xa8f05d33, 5 | (1 << 21) },
  9114.  { "mag-01.rom", 0x080000, 0x5b399eed, 5 | (1 << 21) },
  9115.  
  9116.  { "mag-03.rom", 0x080000, 0x2220eb9f, 6 | (1 << 21) },
  9117.  { "mag-05.rom", 0x080000, 0x56a53254, 6 | (1 << 21) },
  9118.  { "mag-04.rom", 0x080000, 0x144b94cc, 6 | (1 << 21) },
  9119.  { "mag-06.rom", 0x080000, 0x82d44749, 6 | (1 << 21) },
  9120.  
  9121.  { "sa_1_069.bin", 0x040000, 0x2188f3ca, 7 | (1 << 22) },
  9122. };
  9123.  
  9124. static struct BurnRomInfo* stoneagePickRom(UINT32 i) { if (i >= sizeof(stoneageRomDesc) / sizeof(stoneageRomDesc[0])) { return __null; } return stoneageRomDesc + i; }
  9125. static INT32 stoneageRomInfo(struct BurnRomInfo* pri, UINT32 i) { struct BurnRomInfo* por = stoneagePickRom(i); if (por == __null) { return 1; } if (pri) { pri->nLen = por->nLen; pri->nCrc = por->nCrc; pri->nType = por->nType; } return 0; } static INT32 stoneageRomName(char** pszName, UINT32 i, INT32 nAka) { struct BurnRomInfo *por = stoneagePickRom(i); if (por == __null) { return 1; } if (nAka) { return 1; } *pszName = por->szName; return 0; }
  9126.  
  9127. struct BurnDriver BurnDrvStoneage = {
  9128.  "stoneage", "cninja", __null, __null, "1991",
  9129.  "Stoneage (bootleg of Caveman Ninja)\0", __null, "bootleg", "DECO IC16",
  9130.  __null, __null, __null, __null,
  9131.  (1 << 0) | (1 << 4) | (1 << 5), 2, (0x13000000), (1 << 11), 0,
  9132.  __null, stoneageRomInfo, stoneageRomName, __null, __null, DrvInputInfo, CninjaDIPInfo,
  9133.  StoneageInit, DrvExit, StoneageFrame, CninjaDraw, StoneageScan, &DrvRecalc, 0x800,
  9134.  256, 240, 4, 3
  9135. };
  9136.  
  9137.  
  9138.  
  9139.  
  9140. static struct BurnRomInfo cninjablRomDesc[] = {
  9141.  { "joe mac 3.68k", 0x080000, 0xdc931d80, 1 | (1 << 20) | (1 << 24) },
  9142.  { "joe mac 4.68k", 0x080000, 0xe8dfe0b5, 1 | (1 << 20) | (1 << 24) },
  9143.  
  9144.  { "joe mac 5.z80", 0x010000, 0xd791b9d7, 2 | (1 << 20) | (1 << 24) },
  9145.  
  9146.  { "joe mac 1.gfx", 0x200000, 0x17ea5931, 3 | (1 << 21) },
  9147.  { "joe mac 2.gfx", 0x200000, 0xcc95317b, 3 | (1 << 21) },
  9148.  
  9149.  { "joe mac 6.samples", 0x080000, 0xdbecad83, 4 | (1 << 22) },
  9150. };
  9151.  
  9152. static struct BurnRomInfo* cninjablPickRom(UINT32 i) { if (i >= sizeof(cninjablRomDesc) / sizeof(cninjablRomDesc[0])) { return __null; } return cninjablRomDesc + i; }
  9153. static INT32 cninjablRomInfo(struct BurnRomInfo* pri, UINT32 i) { struct BurnRomInfo* por = cninjablPickRom(i); if (por == __null) { return 1; } if (pri) { pri->nLen = por->nLen; pri->nCrc = por->nCrc; pri->nType = por->nType; } return 0; } static INT32 cninjablRomName(char** pszName, UINT32 i, INT32 nAka) { struct BurnRomInfo *por = cninjablPickRom(i); if (por == __null) { return 1; } if (nAka) { return 1; } *pszName = por->szName; return 0; }
  9154.  
  9155. struct BurnDriver BurnDrvCninjabl = {
  9156.  "cninjabl", "cninja", __null, __null, "1991",
  9157.  "Caveman Ninja (bootleg)\0", __null, "bootleg", "DECO IC16",
  9158.  __null, __null, __null, __null,
  9159.  (1 << 0) | (1 << 4) | (1 << 5), 2, (0x13000000), (1 << 11), 0,
  9160.  __null, cninjablRomInfo, cninjablRomName, __null, __null, DrvInputInfo, CninjaDIPInfo,
  9161.  CninjablInit, DrvExit, StoneageFrame, CninjablDraw, StoneageScan, &DrvRecalc, 0x800,
  9162.  256, 240, 4, 3
  9163. };
  9164.  
  9165.  
  9166.  
  9167.  
  9168. static struct BurnRomInfo mutantfRomDesc[] = {
  9169.  { "hd-03-4.2c", 0x020000, 0x94859545, 1 | (1 << 20) | (1 << 24) },
  9170.  { "hd-00-4.2a", 0x020000, 0x3cdb648f, 1 | (1 << 20) | (1 << 24) },
  9171.  { "hd-04-1.4c", 0x020000, 0xfd2ea8d7, 1 | (1 << 20) | (1 << 24) },
  9172.  { "hd-01-1.4a", 0x020000, 0x48a247ac, 1 | (1 << 20) | (1 << 24) },
  9173.  
  9174.  { "hd-12.21j", 0x010000, 0x13d55f11, 2 | (1 << 20) | (1 << 24) },
  9175.  
  9176.  { "hd-06-1.8d", 0x010000, 0x8b7a558b, 3 | (1 << 21) },
  9177.  { "hd-07-1.9d", 0x010000, 0xd2a3d449, 3 | (1 << 21) },
  9178.  
  9179.  { "maf-00.8a", 0x080000, 0xe56f528d, 4 | (1 << 21) },
  9180.  
  9181.  { "maf-01.9a", 0x080000, 0xc3d5173d, 5 | (1 << 21) },
  9182.  { "maf-02.11a", 0x080000, 0x0b37d849, 5 | (1 << 21) },
  9183.  
  9184.  { "maf-03.18a", 0x100000, 0xf4366d2c, 6 | (1 << 21) },
  9185.  { "maf-04.20a", 0x100000, 0x0c8f654e, 6 | (1 << 21) },
  9186.  { "maf-05.21a", 0x080000, 0xb0cfeb80, 6 | (1 << 21) },
  9187.  { "maf-06.18d", 0x100000, 0xf5c7a9b5, 6 | (1 << 21) },
  9188.  { "maf-07.20d", 0x100000, 0xfd6008a3, 6 | (1 << 21) },
  9189.  { "maf-08.21d", 0x080000, 0xe41cf1e7, 6 | (1 << 21) },
  9190.  
  9191.  { "hf-08.15a", 0x010000, 0x93b7279f, 7 | (1 << 21) },
  9192.  { "hf-09.17a", 0x010000, 0x05e2c074, 7 | (1 << 21) },
  9193.  { "hf-10.15c", 0x010000, 0x9b06f418, 7 | (1 << 21) },
  9194.  { "hf-11.17c", 0x010000, 0x3859a531, 7 | (1 << 21) },
  9195.  
  9196.  { "maf-10.20l", 0x040000, 0x7c57f48b, 8 | (1 << 22) },
  9197.  
  9198.  { "maf-09.18l", 0x080000, 0x28e7ed81, 9 | (1 << 22) },
  9199. };
  9200.  
  9201. static struct BurnRomInfo* mutantfPickRom(UINT32 i) { if (i >= sizeof(mutantfRomDesc) / sizeof(mutantfRomDesc[0])) { return __null; } return mutantfRomDesc + i; }
  9202. static INT32 mutantfRomInfo(struct BurnRomInfo* pri, UINT32 i) { struct BurnRomInfo* por = mutantfPickRom(i); if (por == __null) { return 1; } if (pri) { pri->nLen = por->nLen; pri->nCrc = por->nCrc; pri->nType = por->nType; } return 0; } static INT32 mutantfRomName(char** pszName, UINT32 i, INT32 nAka) { struct BurnRomInfo *por = mutantfPickRom(i); if (por == __null) { return 1; } if (nAka) { return 1; } *pszName = por->szName; return 0; }
  9203.  
  9204. struct BurnDriver BurnDrvMutantf = {
  9205.  "mutantf", __null, __null, __null, "1992",
  9206.  "Mutant Fighter (World ver EM-5)\0", __null, "Data East Corporation", "DECO IC16",
  9207.  __null, __null, __null, __null,
  9208.  (1 << 0), 2, (0x13000000), (1 << 3), 0,
  9209.  __null, mutantfRomInfo, mutantfRomName, __null, __null, DrvInputInfo, MutantfDIPInfo,
  9210.  MutantfInit, DrvExit, MutantfFrame, MutantfDraw, DrvScan, &DrvRecalc, 0x800,
  9211.  320, 240, 4, 3
  9212. };
  9213.  
  9214.  
  9215.  
  9216.  
  9217. static struct BurnRomInfo mutantf4RomDesc[] = {
  9218.  { "hd-03-3.2c", 0x020000, 0xe6f53574, 1 | (1 << 20) | (1 << 24) },
  9219.  { "hd-00-3.2a", 0x020000, 0xd3055454, 1 | (1 << 20) | (1 << 24) },
  9220.  { "hd-04-1.4c", 0x020000, 0xfd2ea8d7, 1 | (1 << 20) | (1 << 24) },
  9221.  { "hd-01-1.4a", 0x020000, 0x48a247ac, 1 | (1 << 20) | (1 << 24) },
  9222.  
  9223.  { "hd-12.21j", 0x010000, 0x13d55f11, 2 | (1 << 20) | (1 << 24) },
  9224.  
  9225.  { "hd-06-1.8d", 0x010000, 0x8b7a558b, 3 | (1 << 21) },
  9226.  { "hd-07-1.9d", 0x010000, 0xd2a3d449, 3 | (1 << 21) },
  9227.  
  9228.  { "maf-00.8a", 0x080000, 0xe56f528d, 4 | (1 << 21) },
  9229.  
  9230.  { "maf-01.9a", 0x080000, 0xc3d5173d, 5 | (1 << 21) },
  9231.  { "maf-02.11a", 0x080000, 0x0b37d849, 5 | (1 << 21) },
  9232.  
  9233.  { "maf-03.18a", 0x100000, 0xf4366d2c, 6 | (1 << 21) },
  9234.  { "maf-04.20a", 0x100000, 0x0c8f654e, 6 | (1 << 21) },
  9235.  { "maf-05.21a", 0x080000, 0xb0cfeb80, 6 | (1 << 21) },
  9236.  { "maf-06.18d", 0x100000, 0xf5c7a9b5, 6 | (1 << 21) },
  9237.  { "maf-07.20d", 0x100000, 0xfd6008a3, 6 | (1 << 21) },
  9238.  { "maf-08.21d", 0x080000, 0xe41cf1e7, 6 | (1 << 21) },
  9239.  
  9240.  { "hf-08.15a", 0x010000, 0x93b7279f, 7 | (1 << 21) },
  9241.  { "hf-09.17a", 0x010000, 0x05e2c074, 7 | (1 << 21) },
  9242.  { "hf-10.15c", 0x010000, 0x9b06f418, 7 | (1 << 21) },
  9243.  { "hf-11.17c", 0x010000, 0x3859a531, 7 | (1 << 21) },
  9244.  
  9245.  { "maf-10.20l", 0x040000, 0x7c57f48b, 8 | (1 << 22) },
  9246.  
  9247.  { "maf-09.18l", 0x080000, 0x28e7ed81, 9 | (1 << 22) },
  9248. };
  9249.  
  9250. static struct BurnRomInfo* mutantf4PickRom(UINT32 i) { if (i >= sizeof(mutantf4RomDesc) / sizeof(mutantf4RomDesc[0])) { return __null; } return mutantf4RomDesc + i; }
  9251. static INT32 mutantf4RomInfo(struct BurnRomInfo* pri, UINT32 i) { struct BurnRomInfo* por = mutantf4PickRom(i); if (por == __null) { return 1; } if (pri) { pri->nLen = por->nLen; pri->nCrc = por->nCrc; pri->nType = por->nType; } return 0; } static INT32 mutantf4RomName(char** pszName, UINT32 i, INT32 nAka) { struct BurnRomInfo *por = mutantf4PickRom(i); if (por == __null) { return 1; } if (nAka) { return 1; } *pszName = por->szName; return 0; }
  9252.  
  9253. struct BurnDriver BurnDrvMutantf4 = {
  9254.  "mutantf4", "mutantf", __null, __null, "1992",
  9255.  "Mutant Fighter (World ver EM-4)\0", __null, "Data East Corporation", "DECO IC16",
  9256.  __null, __null, __null, __null,
  9257.  (1 << 0) | (1 << 4), 2, (0x13000000), (1 << 3), 0,
  9258.  __null, mutantf4RomInfo, mutantf4RomName, __null, __null, DrvInputInfo, MutantfDIPInfo,
  9259.  MutantfInit, DrvExit, MutantfFrame, MutantfDraw, DrvScan, &DrvRecalc, 0x800,
  9260.  320, 240, 4, 3
  9261. };
  9262.  
  9263.  
  9264.  
  9265.  
  9266. static struct BurnRomInfo mutantf3RomDesc[] = {
  9267.  { "hd-03-2.2c", 0x020000, 0x0586c4fa, 1 | (1 << 20) | (1 << 24) },
  9268.  { "hd-00-2.2a", 0x020000, 0x6f8ec48e, 1 | (1 << 20) | (1 << 24) },
  9269.  { "hd-04-1.4c", 0x020000, 0xfd2ea8d7, 1 | (1 << 20) | (1 << 24) },
  9270.  { "hd-01-1.4a", 0x020000, 0x48a247ac, 1 | (1 << 20) | (1 << 24) },
  9271.  
  9272.  { "hd-12.21j", 0x010000, 0x13d55f11, 2 | (1 << 20) | (1 << 24) },
  9273.  
  9274.  { "hd-06-1.8d", 0x010000, 0x8b7a558b, 3 | (1 << 21) },
  9275.  { "hd-07-1.9d", 0x010000, 0xd2a3d449, 3 | (1 << 21) },
  9276.  
  9277.  { "maf-00.8a", 0x080000, 0xe56f528d, 4 | (1 << 21) },
  9278.  
  9279.  { "maf-01.9a", 0x080000, 0xc3d5173d, 5 | (1 << 21) },
  9280.  { "maf-02.11a", 0x080000, 0x0b37d849, 5 | (1 << 21) },
  9281.  
  9282.  { "maf-03.18a", 0x100000, 0xf4366d2c, 6 | (1 << 21) },
  9283.  { "maf-04.20a", 0x100000, 0x0c8f654e, 6 | (1 << 21) },
  9284.  { "maf-05.21a", 0x080000, 0xb0cfeb80, 6 | (1 << 21) },
  9285.  { "maf-06.18d", 0x100000, 0xf5c7a9b5, 6 | (1 << 21) },
  9286.  { "maf-07.20d", 0x100000, 0xfd6008a3, 6 | (1 << 21) },
  9287.  { "maf-08.21d", 0x080000, 0xe41cf1e7, 6 | (1 << 21) },
  9288.  
  9289.  { "hf-08.15a", 0x010000, 0x93b7279f, 7 | (1 << 21) },
  9290.  { "hf-09.17a", 0x010000, 0x05e2c074, 7 | (1 << 21) },
  9291.  { "hf-10.15c", 0x010000, 0x9b06f418, 7 | (1 << 21) },
  9292.  { "hf-11.17c", 0x010000, 0x3859a531, 7 | (1 << 21) },
  9293.  
  9294.  { "maf-10.20l", 0x040000, 0x7c57f48b, 8 | (1 << 22) },
  9295.  
  9296.  { "maf-09.18l", 0x080000, 0x28e7ed81, 9 | (1 << 22) },
  9297. };
  9298.  
  9299. static struct BurnRomInfo* mutantf3PickRom(UINT32 i) { if (i >= sizeof(mutantf3RomDesc) / sizeof(mutantf3RomDesc[0])) { return __null; } return mutantf3RomDesc + i; }
  9300. static INT32 mutantf3RomInfo(struct BurnRomInfo* pri, UINT32 i) { struct BurnRomInfo* por = mutantf3PickRom(i); if (por == __null) { return 1; } if (pri) { pri->nLen = por->nLen; pri->nCrc = por->nCrc; pri->nType = por->nType; } return 0; } static INT32 mutantf3RomName(char** pszName, UINT32 i, INT32 nAka) { struct BurnRomInfo *por = mutantf3PickRom(i); if (por == __null) { return 1; } if (nAka) { return 1; } *pszName = por->szName; return 0; }
  9301.  
  9302. struct BurnDriver BurnDrvMutantf3 = {
  9303.  "mutantf3", "mutantf", __null, __null, "1992",
  9304.  "Mutant Fighter (World ver EM-3)\0", __null, "Data East Corporation", "DECO IC16",
  9305.  __null, __null, __null, __null,
  9306.  (1 << 0) | (1 << 4), 2, (0x13000000), (1 << 3), 0,
  9307.  __null, mutantf3RomInfo, mutantf3RomName, __null, __null, DrvInputInfo, MutantfDIPInfo,
  9308.  MutantfInit, DrvExit, MutantfFrame, MutantfDraw, DrvScan, &DrvRecalc, 0x800,
  9309.  320, 240, 4, 3
  9310. };
  9311.  
  9312.  
  9313.  
  9314.  
  9315. static struct BurnRomInfo deathbrdRomDesc[] = {
  9316.  { "hf-03-2.2c", 0x020000, 0xfb86fff3, 1 | (1 << 20) | (1 << 24) },
  9317.  { "hf-00-2.2a", 0x020000, 0x099aa422, 1 | (1 << 20) | (1 << 24) },
  9318.  { "hd-04-1.4c", 0x020000, 0xfd2ea8d7, 1 | (1 << 20) | (1 << 24) },
  9319.  { "hd-01-1.4a", 0x020000, 0x48a247ac, 1 | (1 << 20) | (1 << 24) },
  9320.  
  9321.  { "hd-12.21j", 0x010000, 0x13d55f11, 2 | (1 << 20) | (1 << 24) },
  9322.  
  9323.  { "hd-06-1.8d", 0x010000, 0x8b7a558b, 3 | (1 << 21) },
  9324.  { "hd-07-1.9d", 0x010000, 0xd2a3d449, 3 | (1 << 21) },
  9325.  
  9326.  { "maf-00.8a", 0x080000, 0xe56f528d, 4 | (1 << 21) },
  9327.  
  9328.  { "maf-01.9a", 0x080000, 0xc3d5173d, 5 | (1 << 21) },
  9329.  { "maf-02.11a", 0x080000, 0x0b37d849, 5 | (1 << 21) },
  9330.  
  9331.  { "maf-03.18a", 0x100000, 0xf4366d2c, 6 | (1 << 21) },
  9332.  { "maf-04.20a", 0x100000, 0x0c8f654e, 6 | (1 << 21) },
  9333.  { "maf-05.21a", 0x080000, 0xb0cfeb80, 6 | (1 << 21) },
  9334.  { "maf-06.18d", 0x100000, 0xf5c7a9b5, 6 | (1 << 21) },
  9335.  { "maf-07.20d", 0x100000, 0xfd6008a3, 6 | (1 << 21) },
  9336.  { "maf-08.21d", 0x080000, 0xe41cf1e7, 6 | (1 << 21) },
  9337.  
  9338.  { "hf-08.15a", 0x010000, 0x93b7279f, 7 | (1 << 21) },
  9339.  { "hf-09.17a", 0x010000, 0x05e2c074, 7 | (1 << 21) },
  9340.  { "hf-10.15c", 0x010000, 0x9b06f418, 7 | (1 << 21) },
  9341.  { "hf-11.17c", 0x010000, 0x3859a531, 7 | (1 << 21) },
  9342.  
  9343.  { "maf-10.20l", 0x040000, 0x7c57f48b, 8 | (1 << 22) },
  9344.  
  9345.  { "maf-09.18l", 0x080000, 0x28e7ed81, 9 | (1 << 22) },
  9346. };
  9347.  
  9348. static struct BurnRomInfo* deathbrdPickRom(UINT32 i) { if (i >= sizeof(deathbrdRomDesc) / sizeof(deathbrdRomDesc[0])) { return __null; } return deathbrdRomDesc + i; }
  9349. static INT32 deathbrdRomInfo(struct BurnRomInfo* pri, UINT32 i) { struct BurnRomInfo* por = deathbrdPickRom(i); if (por == __null) { return 1; } if (pri) { pri->nLen = por->nLen; pri->nCrc = por->nCrc; pri->nType = por->nType; } return 0; } static INT32 deathbrdRomName(char** pszName, UINT32 i, INT32 nAka) { struct BurnRomInfo *por = deathbrdPickRom(i); if (por == __null) { return 1; } if (nAka) { return 1; } *pszName = por->szName; return 0; }
  9350.  
  9351. struct BurnDriver BurnDrvDeathbrd = {
  9352.  "deathbrd", "mutantf", __null, __null, "1992",
  9353.  "Death Brade (Japan ver JM-3)\0", __null, "Data East Corporation", "DECO IC16",
  9354.  __null, __null, __null, __null,
  9355.  (1 << 0) | (1 << 4), 2, (0x13000000), (1 << 3), 0,
  9356.  __null, deathbrdRomInfo, deathbrdRomName, __null, __null, DrvInputInfo, MutantfDIPInfo,
  9357.  MutantfInit, DrvExit, MutantfFrame, MutantfDraw, DrvScan, &DrvRecalc, 0x800,
  9358.  320, 240, 4, 3
  9359. };
  9360.  
  9361.  
  9362.  
  9363.  
  9364. static struct BurnRomInfo edrandyRomDesc[] = {
  9365.  { "gg-00-2.k1", 0x020000, 0xce1ba964, 1 | (1 << 20) | (1 << 24) },
  9366.  { "gg-04-2.k3", 0x020000, 0x24caed19, 1 | (1 << 20) | (1 << 24) },
  9367.  { "gg-01-2.j1", 0x020000, 0x33677b80, 1 | (1 << 20) | (1 << 24) },
  9368.  { "gg-05-2.j3", 0x020000, 0x79a68ca6, 1 | (1 << 20) | (1 << 24) },
  9369.  { "ge-02.h1", 0x020000, 0xc2969fbb, 1 | (1 << 20) | (1 << 24) },
  9370.  { "ge-06.h3", 0x020000, 0x5c2e6418, 1 | (1 << 20) | (1 << 24) },
  9371.  { "ge-03.f1", 0x020000, 0x5e7b19a8, 1 | (1 << 20) | (1 << 24) },
  9372.  { "ge-07.f3", 0x020000, 0x5eb819a1, 1 | (1 << 20) | (1 << 24) },
  9373.  
  9374.  { "ge-09.k13", 0x010000, 0x9f94c60b, 2 | (1 << 20) | (1 << 24) },
  9375.  
  9376.  { "gg-10.y6", 0x010000, 0xb96c6cbe, 3 | (1 << 21) },
  9377.  { "gg-11.z6", 0x010000, 0xee567448, 3 | (1 << 21) },
  9378.  
  9379.  { "mad-02", 0x080000, 0x6c76face, 4 | (1 << 21) },
  9380.  
  9381.  { "mad-00", 0x080000, 0x3735b22d, 5 | (1 << 21) },
  9382.  { "mad-01", 0x080000, 0x7bb13e1c, 5 | (1 << 21) },
  9383.  
  9384.  { "mad-03", 0x080000, 0xc0bff892, 6 | (1 << 21) },
  9385.  { "mad-05", 0x080000, 0x3f2ccf95, 6 | (1 << 21) },
  9386.  { "mad-04", 0x080000, 0x464f3eb9, 6 | (1 << 21) },
  9387.  { "mad-06", 0x080000, 0x60871f77, 6 | (1 << 21) },
  9388.  { "mad-07", 0x080000, 0xac03466e, 6 | (1 << 21) },
  9389.  { "mad-08", 0x080000, 0x1b420ec8, 6 | (1 << 21) },
  9390.  { "mad-10", 0x080000, 0x42da8ef0, 6 | (1 << 21) },
  9391.  { "mad-11", 0x080000, 0x03c1f982, 6 | (1 << 21) },
  9392.  { "mad-09", 0x080000, 0x930f4900, 6 | (1 << 21) },
  9393.  { "mad-12", 0x080000, 0xa0bd62b6, 6 | (1 << 21) },
  9394.  
  9395.  { "ge-08.j13", 0x020000, 0xdfe28c7b, 7 | (1 << 22) },
  9396.  
  9397.  { "mad-13", 0x080000, 0x6ab28eba, 8 | (1 << 22) },
  9398.  
  9399.  { "ge-12.v7", 0x000400, 0x278f674f, 0 | (1 << 27) },
  9400. };
  9401.  
  9402. static struct BurnRomInfo* edrandyPickRom(UINT32 i) { if (i >= sizeof(edrandyRomDesc) / sizeof(edrandyRomDesc[0])) { return __null; } return edrandyRomDesc + i; }
  9403. static INT32 edrandyRomInfo(struct BurnRomInfo* pri, UINT32 i) { struct BurnRomInfo* por = edrandyPickRom(i); if (por == __null) { return 1; } if (pri) { pri->nLen = por->nLen; pri->nCrc = por->nCrc; pri->nType = por->nType; } return 0; } static INT32 edrandyRomName(char** pszName, UINT32 i, INT32 nAka) { struct BurnRomInfo *por = edrandyPickRom(i); if (por == __null) { return 1; } if (nAka) { return 1; } *pszName = por->szName; return 0; }
  9404.  
  9405. struct BurnDriver BurnDrvEdrandy = {
  9406.  "edrandy", __null, __null, __null, "1990",
  9407.  "The Cliffhanger - Edward Randy (World ver 3)\0", __null, "Data East Corporation", "DECO IC16",
  9408.  __null, __null, __null, __null,
  9409.  (1 << 0), 2, (0x13000000), (1 << 2), 0,
  9410.  __null, edrandyRomInfo, edrandyRomName, __null, __null, DrvInputInfo, EdrandyDIPInfo,
  9411.  EdrandyInit, DrvExit, CninjaFrame, EdrandyDraw, DrvScan, &DrvRecalc, 0x800,
  9412.  256, 240, 4, 3
  9413. };
  9414.  
  9415.  
  9416.  
  9417.  
  9418. static struct BurnRomInfo edrandy2RomDesc[] = {
  9419.  { "gg00-1.k1", 0x020000, 0xa029cc4a, 1 | (1 << 20) | (1 << 24) },
  9420.  { "gg04-1.k3", 0x020000, 0x8b7928a4, 1 | (1 << 20) | (1 << 24) },
  9421.  { "gg01-1.j1", 0x020000, 0x84360123, 1 | (1 << 20) | (1 << 24) },
  9422.  { "gg05-1.j3", 0x020000, 0x0bf85d9d, 1 | (1 << 20) | (1 << 24) },
  9423.  { "ge-02.h1", 0x020000, 0xc2969fbb, 1 | (1 << 20) | (1 << 24) },
  9424.  { "ge-06.h3", 0x020000, 0x5c2e6418, 1 | (1 << 20) | (1 << 24) },
  9425.  { "ge-03.f1", 0x020000, 0x5e7b19a8, 1 | (1 << 20) | (1 << 24) },
  9426.  { "ge-07.f3", 0x020000, 0x5eb819a1, 1 | (1 << 20) | (1 << 24) },
  9427.  
  9428.  { "ge-09.k13", 0x010000, 0x9f94c60b, 2 | (1 << 20) | (1 << 24) },
  9429.  
  9430.  { "gg-10.y6", 0x010000, 0xb96c6cbe, 3 | (1 << 21) },
  9431.  { "gg-11.z6", 0x010000, 0xee567448, 3 | (1 << 21) },
  9432.  
  9433.  { "mad-02", 0x080000, 0x6c76face, 4 | (1 << 21) },
  9434.  
  9435.  { "mad-00", 0x080000, 0x3735b22d, 5 | (1 << 21) },
  9436.  { "mad-01", 0x080000, 0x7bb13e1c, 5 | (1 << 21) },
  9437.  
  9438.  { "mad-03", 0x080000, 0xc0bff892, 6 | (1 << 21) },
  9439.  { "mad-05", 0x080000, 0x3f2ccf95, 6 | (1 << 21) },
  9440.  { "mad-04", 0x080000, 0x464f3eb9, 6 | (1 << 21) },
  9441.  { "mad-06", 0x080000, 0x60871f77, 6 | (1 << 21) },
  9442.  { "mad-07", 0x080000, 0xac03466e, 6 | (1 << 21) },
  9443.  { "mad-08", 0x080000, 0x1b420ec8, 6 | (1 << 21) },
  9444.  { "mad-10", 0x080000, 0x42da8ef0, 6 | (1 << 21) },
  9445.  { "mad-11", 0x080000, 0x03c1f982, 6 | (1 << 21) },
  9446.  { "mad-09", 0x080000, 0x930f4900, 6 | (1 << 21) },
  9447.  { "mad-12", 0x080000, 0xa0bd62b6, 6 | (1 << 21) },
  9448.  
  9449.  { "ge-08.j13", 0x020000, 0xdfe28c7b, 7 | (1 << 22) },
  9450.  
  9451.  { "mad-13", 0x080000, 0x6ab28eba, 8 | (1 << 22) },
  9452.  
  9453.  { "ge-12.v7", 0x000400, 0x278f674f, 0 | (1 << 27) },
  9454. };
  9455.  
  9456. static struct BurnRomInfo* edrandy2PickRom(UINT32 i) { if (i >= sizeof(edrandy2RomDesc) / sizeof(edrandy2RomDesc[0])) { return __null; } return edrandy2RomDesc + i; }
  9457. static INT32 edrandy2RomInfo(struct BurnRomInfo* pri, UINT32 i) { struct BurnRomInfo* por = edrandy2PickRom(i); if (por == __null) { return 1; } if (pri) { pri->nLen = por->nLen; pri->nCrc = por->nCrc; pri->nType = por->nType; } return 0; } static INT32 edrandy2RomName(char** pszName, UINT32 i, INT32 nAka) { struct BurnRomInfo *por = edrandy2PickRom(i); if (por == __null) { return 1; } if (nAka) { return 1; } *pszName = por->szName; return 0; }
  9458.  
  9459. struct BurnDriver BurnDrvEdrandy2 = {
  9460.  "edrandy2", "edrandy", __null, __null, "1990",
  9461.  "The Cliffhanger - Edward Randy (World ver 2)\0", __null, "Data East Corporation", "DECO IC16",
  9462.  __null, __null, __null, __null,
  9463.  (1 << 0) | (1 << 4), 2, (0x13000000), (1 << 2), 0,
  9464.  __null, edrandy2RomInfo, edrandy2RomName, __null, __null, DrvInputInfo, EdrandcDIPInfo,
  9465.  EdrandyInit, DrvExit, CninjaFrame, EdrandyDraw, DrvScan, &DrvRecalc, 0x800,
  9466.  256, 240, 4, 3
  9467. };
  9468.  
  9469.  
  9470.  
  9471.  
  9472. static struct BurnRomInfo edrandy1RomDesc[] = {
  9473.  { "1.k1", 0x020000, 0xf184cdaa, 1 | (1 << 20) | (1 << 24) },
  9474.  { "5.k3", 0x020000, 0x7e3a4b81, 1 | (1 << 20) | (1 << 24) },
  9475.  { "2.j1", 0x020000, 0x212cd593, 1 | (1 << 20) | (1 << 24) },
  9476.  { "6.j3", 0x020000, 0x4a96fb07, 1 | (1 << 20) | (1 << 24) },
  9477.  { "ge-02.h1", 0x020000, 0xc2969fbb, 1 | (1 << 20) | (1 << 24) },
  9478.  { "ge-06.h3", 0x020000, 0x5c2e6418, 1 | (1 << 20) | (1 << 24) },
  9479.  { "ge-03.f1", 0x020000, 0x5e7b19a8, 1 | (1 << 20) | (1 << 24) },
  9480.  { "ge-07.f3", 0x020000, 0x5eb819a1, 1 | (1 << 20) | (1 << 24) },
  9481.  
  9482.  { "ge-09.k13", 0x010000, 0x9f94c60b, 2 | (1 << 20) | (1 << 24) },
  9483.  
  9484.  { "ge-10.y6", 0x010000, 0x2528d795, 3 | (1 << 21) },
  9485.  { "ge-11.z6", 0x010000, 0xe34a931e, 3 | (1 << 21) },
  9486.  
  9487.  { "mad-02", 0x080000, 0x6c76face, 4 | (1 << 21) },
  9488.  
  9489.  { "mad-00", 0x080000, 0x3735b22d, 5 | (1 << 21) },
  9490.  { "mad-01", 0x080000, 0x7bb13e1c, 5 | (1 << 21) },
  9491.  
  9492.  { "mad-03", 0x080000, 0xc0bff892, 6 | (1 << 21) },
  9493.  { "mad-05", 0x080000, 0x3f2ccf95, 6 | (1 << 21) },
  9494.  { "mad-04", 0x080000, 0x464f3eb9, 6 | (1 << 21) },
  9495.  { "mad-06", 0x080000, 0x60871f77, 6 | (1 << 21) },
  9496.  { "mad-07", 0x080000, 0xac03466e, 6 | (1 << 21) },
  9497.  { "mad-08", 0x080000, 0x1b420ec8, 6 | (1 << 21) },
  9498.  { "mad-10", 0x080000, 0x42da8ef0, 6 | (1 << 21) },
  9499.  { "mad-11", 0x080000, 0x03c1f982, 6 | (1 << 21) },
  9500.  { "mad-09", 0x080000, 0x930f4900, 6 | (1 << 21) },
  9501.  { "mad-12", 0x080000, 0xa0bd62b6, 6 | (1 << 21) },
  9502.  
  9503.  { "ge-08.j13", 0x020000, 0xdfe28c7b, 7 | (1 << 22) },
  9504.  
  9505.  { "mad-13", 0x080000, 0x6ab28eba, 8 | (1 << 22) },
  9506.  
  9507.  { "ge-12.v7", 0x000400, 0x278f674f, 0 | (1 << 27) },
  9508. };
  9509.  
  9510. static struct BurnRomInfo* edrandy1PickRom(UINT32 i) { if (i >= sizeof(edrandy1RomDesc) / sizeof(edrandy1RomDesc[0])) { return __null; } return edrandy1RomDesc + i; }
  9511. static INT32 edrandy1RomInfo(struct BurnRomInfo* pri, UINT32 i) { struct BurnRomInfo* por = edrandy1PickRom(i); if (por == __null) { return 1; } if (pri) { pri->nLen = por->nLen; pri->nCrc = por->nCrc; pri->nType = por->nType; } return 0; } static INT32 edrandy1RomName(char** pszName, UINT32 i, INT32 nAka) { struct BurnRomInfo *por = edrandy1PickRom(i); if (por == __null) { return 1; } if (nAka) { return 1; } *pszName = por->szName; return 0; }
  9512.  
  9513. struct BurnDriver BurnDrvEdrandy1 = {
  9514.  "edrandy1", "edrandy", __null, __null, "1990",
  9515.  "The Cliffhanger - Edward Randy (World ver 1)\0", __null, "Data East Corporation", "DECO IC16",
  9516.  __null, __null, __null, __null,
  9517.  (1 << 0) | (1 << 4), 2, (0x13000000), (1 << 2), 0,
  9518.  __null, edrandy1RomInfo, edrandy1RomName, __null, __null, DrvInputInfo, EdrandcDIPInfo,
  9519.  EdrandyInit, DrvExit, CninjaFrame, EdrandyDraw, DrvScan, &DrvRecalc, 0x800,
  9520.  256, 240, 4, 3
  9521. };
  9522.  
  9523.  
  9524.  
  9525.  
  9526. static struct BurnRomInfo edrandyjRomDesc[] = {
  9527.  { "ge-00-2.k1", 0x020000, 0xb3d2403c, 1 | (1 << 20) | (1 << 24) },
  9528.  { "ge-04-2.k3", 0x020000, 0x8a9624d6, 1 | (1 << 20) | (1 << 24) },
  9529.  { "ge-01-2.j1", 0x020000, 0x84360123, 1 | (1 << 20) | (1 << 24) },
  9530.  { "ge-05-2.j3", 0x020000, 0x0bf85d9d, 1 | (1 << 20) | (1 << 24) },
  9531.  { "ge-02.h1", 0x020000, 0xc2969fbb, 1 | (1 << 20) | (1 << 24) },
  9532.  { "ge-06.h3", 0x020000, 0x5c2e6418, 1 | (1 << 20) | (1 << 24) },
  9533.  { "ge-03.f1", 0x020000, 0x5e7b19a8, 1 | (1 << 20) | (1 << 24) },
  9534.  { "ge-07.f3", 0x020000, 0x5eb819a1, 1 | (1 << 20) | (1 << 24) },
  9535.  
  9536.  { "ge-09.k13", 0x010000, 0x9f94c60b, 2 | (1 << 20) | (1 << 24) },
  9537.  
  9538.  { "ge-10.y6", 0x010000, 0x2528d795, 3 | (1 << 21) },
  9539.  { "ge-11.z6", 0x010000, 0xe34a931e, 3 | (1 << 21) },
  9540.  
  9541.  { "mad-02", 0x080000, 0x6c76face, 4 | (1 << 21) },
  9542.  
  9543.  { "mad-00", 0x080000, 0x3735b22d, 5 | (1 << 21) },
  9544.  { "mad-01", 0x080000, 0x7bb13e1c, 5 | (1 << 21) },
  9545.  
  9546.  { "mad-03", 0x080000, 0xc0bff892, 6 | (1 << 21) },
  9547.  { "mad-05", 0x080000, 0x3f2ccf95, 6 | (1 << 21) },
  9548.  { "mad-04", 0x080000, 0x464f3eb9, 6 | (1 << 21) },
  9549.  { "mad-06", 0x080000, 0x60871f77, 6 | (1 << 21) },
  9550.  { "mad-07", 0x080000, 0xac03466e, 6 | (1 << 21) },
  9551.  { "mad-08", 0x080000, 0x1b420ec8, 6 | (1 << 21) },
  9552.  { "mad-10", 0x080000, 0x42da8ef0, 6 | (1 << 21) },
  9553.  { "mad-11", 0x080000, 0x03c1f982, 6 | (1 << 21) },
  9554.  { "mad-09", 0x080000, 0x930f4900, 6 | (1 << 21) },
  9555.  { "mad-12", 0x080000, 0xa0bd62b6, 6 | (1 << 21) },
  9556.  
  9557.  { "ge-08.j13", 0x020000, 0xdfe28c7b, 7 | (1 << 22) },
  9558.  
  9559.  { "mad-13", 0x080000, 0x6ab28eba, 8 | (1 << 22) },
  9560.  
  9561.  { "ge-12.v7", 0x000400, 0x278f674f, 0 | (1 << 27) },
  9562. };
  9563.  
  9564. static struct BurnRomInfo* edrandyjPickRom(UINT32 i) { if (i >= sizeof(edrandyjRomDesc) / sizeof(edrandyjRomDesc[0])) { return __null; } return edrandyjRomDesc + i; }
  9565. static INT32 edrandyjRomInfo(struct BurnRomInfo* pri, UINT32 i) { struct BurnRomInfo* por = edrandyjPickRom(i); if (por == __null) { return 1; } if (pri) { pri->nLen = por->nLen; pri->nCrc = por->nCrc; pri->nType = por->nType; } return 0; } static INT32 edrandyjRomName(char** pszName, UINT32 i, INT32 nAka) { struct BurnRomInfo *por = edrandyjPickRom(i); if (por == __null) { return 1; } if (nAka) { return 1; } *pszName = por->szName; return 0; }
  9566.  
  9567. struct BurnDriver BurnDrvEdrandyj = {
  9568.  "edrandyj", "edrandy", __null, __null, "1990",
  9569.  "The Cliffhanger - Edward Randy (Japan ver 3)\0", __null, "Data East Corporation", "DECO IC16",
  9570.  __null, __null, __null, __null,
  9571.  (1 << 0) | (1 << 4), 2, (0x13000000), (1 << 2), 0,
  9572.  __null, edrandyjRomInfo, edrandyjRomName, __null, __null, DrvInputInfo, EdrandcDIPInfo,
  9573.  EdrandyInit, DrvExit, CninjaFrame, EdrandyDraw, DrvScan, &DrvRecalc, 0x800,
  9574.  256, 240, 4, 3
  9575. };
  9576.  
  9577.  
  9578.  
  9579.  
  9580. static struct BurnRomInfo robocop2RomDesc[] = {
  9581.  { "gq-03.k1", 0x020000, 0xa7e90c28, 1 | (1 << 20) | (1 << 24) },
  9582.  { "gq-07.k3", 0x020000, 0xd2287ec1, 1 | (1 << 20) | (1 << 24) },
  9583.  { "gq-02.j1", 0x020000, 0x6777b8a0, 1 | (1 << 20) | (1 << 24) },
  9584.  { "gq-06.j3", 0x020000, 0xe11e27b5, 1 | (1 << 20) | (1 << 24) },
  9585.  { "go-01-1.h1", 0x020000, 0xab5356c0, 1 | (1 << 20) | (1 << 24) },
  9586.  { "go-05-1.h3", 0x020000, 0xce21bda5, 1 | (1 << 20) | (1 << 24) },
  9587.  { "go-00.f1", 0x020000, 0xa93369ea, 1 | (1 << 20) | (1 << 24) },
  9588.  { "go-04.f3", 0x020000, 0xee2f6ad9, 1 | (1 << 20) | (1 << 24) },
  9589.  
  9590.  { "gp-09.k13", 0x010000, 0x4a4e0f8d, 2 | (1 << 20) | (1 << 24) },
  9591.  
  9592.  { "gp10-1.y6", 0x010000, 0xd25d719c, 3 | (1 << 21) },
  9593.  { "gp11-1.z6", 0x010000, 0x030ded47, 3 | (1 << 21) },
  9594.  
  9595.  { "mah-04.z4", 0x080000, 0x9b6ca18c, 4 | (1 << 21) },
  9596.  { "mah-03.y4", 0x080000, 0x37894ddc, 4 | (1 << 21) },
  9597.  
  9598.  { "mah-01.z1", 0x080000, 0x26e0dfff, 5 | (1 << 21) },
  9599.  { "mah-00.y1", 0x080000, 0x7bd69e41, 5 | (1 << 21) },
  9600.  { "mah-02.a1", 0x080000, 0x328a247d, 5 | (1 << 21) },
  9601.  
  9602.  { "mah-05.y9", 0x080000, 0x6773e613, 6 | (1 << 21) },
  9603.  { "mah-08.y12", 0x080000, 0x88d310a5, 6 | (1 << 21) },
  9604.  { "mah-06.z9", 0x080000, 0x27a8808a, 6 | (1 << 21) },
  9605.  { "mah-09.z12", 0x080000, 0xa58c43a7, 6 | (1 << 21) },
  9606.  { "mah-07.a9", 0x080000, 0x526f4190, 6 | (1 << 21) },
  9607.  { "mah-10.a12", 0x080000, 0x14b770da, 6 | (1 << 21) },
  9608.  
  9609.  { "gp-08.j13", 0x020000, 0x365183b1, 7 | (1 << 22) },
  9610.  
  9611.  { "mah-11.f13", 0x080000, 0x642bc692, 8 | (1 << 22) },
  9612.  
  9613.  { "go-12.v7", 0x000400, 0x278f674f, 0 | (1 << 27) },
  9614. };
  9615.  
  9616. static struct BurnRomInfo* robocop2PickRom(UINT32 i) { if (i >= sizeof(robocop2RomDesc) / sizeof(robocop2RomDesc[0])) { return __null; } return robocop2RomDesc + i; }
  9617. static INT32 robocop2RomInfo(struct BurnRomInfo* pri, UINT32 i) { struct BurnRomInfo* por = robocop2PickRom(i); if (por == __null) { return 1; } if (pri) { pri->nLen = por->nLen; pri->nCrc = por->nCrc; pri->nType = por->nType; } return 0; } static INT32 robocop2RomName(char** pszName, UINT32 i, INT32 nAka) { struct BurnRomInfo *por = robocop2PickRom(i); if (por == __null) { return 1; } if (nAka) { return 1; } *pszName = por->szName; return 0; }
  9618.  
  9619. struct BurnDriver BurnDrvRobocop2 = {
  9620.  "robocop2", __null, __null, __null, "1991",
  9621.  "Robocop 2 (Euro/Asia v0.10)\0", __null, "Data East Corporation", "DECO IC16",
  9622.  __null, __null, __null, __null,
  9623.  (1 << 0), 2, (0x13000000), (1 << 2), 0,
  9624.  __null, robocop2RomInfo, robocop2RomName, __null, __null, Robocop2InputInfo, Robocop2DIPInfo,
  9625.  Robocop2Init, DrvExit, CninjaFrame, Robocop2Draw, DrvScan, &DrvRecalc, 0x800,
  9626.  320, 240, 4, 3
  9627. };
  9628.  
  9629.  
  9630.  
  9631.  
  9632. static struct BurnRomInfo robocop2uRomDesc[] = {
  9633.  { "robo03.k1", 0x020000, 0xf4c96cc9, 1 | (1 << 20) | (1 << 24) },
  9634.  { "robo07.k3", 0x020000, 0x11e53a7c, 1 | (1 << 20) | (1 << 24) },
  9635.  { "robo02.j1", 0x020000, 0xfa086a0d, 1 | (1 << 20) | (1 << 24) },
  9636.  { "robo06.j3", 0x020000, 0x703b49d0, 1 | (1 << 20) | (1 << 24) },
  9637.  { "go-01-1.h1", 0x020000, 0xab5356c0, 1 | (1 << 20) | (1 << 24) },
  9638.  { "go-05-1.h3", 0x020000, 0xce21bda5, 1 | (1 << 20) | (1 << 24) },
  9639.  { "go-00.f1", 0x020000, 0xa93369ea, 1 | (1 << 20) | (1 << 24) },
  9640.  { "go-04.f3", 0x020000, 0xee2f6ad9, 1 | (1 << 20) | (1 << 24) },
  9641.  
  9642.  { "gp-09.k13", 0x010000, 0x4a4e0f8d, 2 | (1 << 20) | (1 << 24) },
  9643.  
  9644.  { "gp10-1.y6", 0x010000, 0xd25d719c, 3 | (1 << 21) },
  9645.  { "gp11-1.z6", 0x010000, 0x030ded47, 3 | (1 << 21) },
  9646.  
  9647.  { "mah-04.z4", 0x080000, 0x9b6ca18c, 4 | (1 << 21) },
  9648.  { "mah-03.y4", 0x080000, 0x37894ddc, 4 | (1 << 21) },
  9649.  
  9650.  { "mah-01.z1", 0x080000, 0x26e0dfff, 5 | (1 << 21) },
  9651.  { "mah-00.y1", 0x080000, 0x7bd69e41, 5 | (1 << 21) },
  9652.  { "mah-02.a1", 0x080000, 0x328a247d, 5 | (1 << 21) },
  9653.  
  9654.  { "mah-05.y9", 0x080000, 0x6773e613, 6 | (1 << 21) },
  9655.  { "mah-08.y12", 0x080000, 0x88d310a5, 6 | (1 << 21) },
  9656.  { "mah-06.z9", 0x080000, 0x27a8808a, 6 | (1 << 21) },
  9657.  { "mah-09.z12", 0x080000, 0xa58c43a7, 6 | (1 << 21) },
  9658.  { "mah-07.a9", 0x080000, 0x526f4190, 6 | (1 << 21) },
  9659.  { "mah-10.a12", 0x080000, 0x14b770da, 6 | (1 << 21) },
  9660.  
  9661.  { "gp-08.j13", 0x020000, 0x365183b1, 7 | (1 << 22) },
  9662.  
  9663.  { "mah-11.f13", 0x080000, 0x642bc692, 8 | (1 << 22) },
  9664.  
  9665.  { "go-12.v7", 0x000400, 0x278f674f, 0 | (1 << 27) },
  9666. };
  9667.  
  9668. static struct BurnRomInfo* robocop2uPickRom(UINT32 i) { if (i >= sizeof(robocop2uRomDesc) / sizeof(robocop2uRomDesc[0])) { return __null; } return robocop2uRomDesc + i; }
  9669. static INT32 robocop2uRomInfo(struct BurnRomInfo* pri, UINT32 i) { struct BurnRomInfo* por = robocop2uPickRom(i); if (por == __null) { return 1; } if (pri) { pri->nLen = por->nLen; pri->nCrc = por->nCrc; pri->nType = por->nType; } return 0; } static INT32 robocop2uRomName(char** pszName, UINT32 i, INT32 nAka) { struct BurnRomInfo *por = robocop2uPickRom(i); if (por == __null) { return 1; } if (nAka) { return 1; } *pszName = por->szName; return 0; }
  9670.  
  9671. struct BurnDriver BurnDrvRobocop2u = {
  9672.  "robocop2u", "robocop2", __null, __null, "1991",
  9673.  "Robocop 2 (US v0.05)\0", __null, "Data East Corporation", "DECO IC16",
  9674.  __null, __null, __null, __null,
  9675.  (1 << 0) | (1 << 4), 2, (0x13000000), (1 << 2), 0,
  9676.  __null, robocop2uRomInfo, robocop2uRomName, __null, __null, Robocop2InputInfo, Robocop2DIPInfo,
  9677.  Robocop2Init, DrvExit, CninjaFrame, Robocop2Draw, DrvScan, &DrvRecalc, 0x800,
  9678.  320, 240, 4, 3
  9679. };
  9680.  
  9681.  
  9682.  
  9683.  
  9684. static struct BurnRomInfo robocop2jRomDesc[] = {
  9685.  { "go-03-1.k1", 0x020000, 0x52506608, 1 | (1 << 20) | (1 << 24) },
  9686.  { "go-07-1.k3", 0x020000, 0x739cda17, 1 | (1 << 20) | (1 << 24) },
  9687.  { "go-02-1.j1", 0x020000, 0x48c0ace9, 1 | (1 << 20) | (1 << 24) },
  9688.  { "go-06-1.j3", 0x020000, 0x41abec87, 1 | (1 << 20) | (1 << 24) },
  9689.  { "go-01-1.h1", 0x020000, 0xab5356c0, 1 | (1 << 20) | (1 << 24) },
  9690.  { "go-05-1.h3", 0x020000, 0xce21bda5, 1 | (1 << 20) | (1 << 24) },
  9691.  { "go-00.f1", 0x020000, 0xa93369ea, 1 | (1 << 20) | (1 << 24) },
  9692.  { "go-04.f3", 0x020000, 0xee2f6ad9, 1 | (1 << 20) | (1 << 24) },
  9693.  
  9694.  { "gp-09.k13", 0x010000, 0x4a4e0f8d, 2 | (1 << 20) | (1 << 24) },
  9695.  
  9696.  { "gp10-1.y6", 0x010000, 0xd25d719c, 3 | (1 << 21) },
  9697.  { "gp11-1.z6", 0x010000, 0x030ded47, 3 | (1 << 21) },
  9698.  
  9699.  { "mah-04.z4", 0x080000, 0x9b6ca18c, 4 | (1 << 21) },
  9700.  { "mah-03.y4", 0x080000, 0x37894ddc, 4 | (1 << 21) },
  9701.  
  9702.  { "mah-01.z1", 0x080000, 0x26e0dfff, 5 | (1 << 21) },
  9703.  { "mah-00.y1", 0x080000, 0x7bd69e41, 5 | (1 << 21) },
  9704.  { "mah-02.a1", 0x080000, 0x328a247d, 5 | (1 << 21) },
  9705.  
  9706.  { "mah-05.y9", 0x080000, 0x6773e613, 6 | (1 << 21) },
  9707.  { "mah-08.y12", 0x080000, 0x88d310a5, 6 | (1 << 21) },
  9708.  { "mah-06.z9", 0x080000, 0x27a8808a, 6 | (1 << 21) },
  9709.  { "mah-09.z12", 0x080000, 0xa58c43a7, 6 | (1 << 21) },
  9710.  { "mah-07.a9", 0x080000, 0x526f4190, 6 | (1 << 21) },
  9711.  { "mah-10.a12", 0x080000, 0x14b770da, 6 | (1 << 21) },
  9712.  
  9713.  { "gp-08.j13", 0x020000, 0x365183b1, 7 | (1 << 22) },
  9714.  
  9715.  { "mah-11.f13", 0x080000, 0x642bc692, 8 | (1 << 22) },
  9716.  
  9717.  { "go-12.v7", 0x000400, 0x278f674f, 0 | (1 << 27) },
  9718. };
  9719.  
  9720. static struct BurnRomInfo* robocop2jPickRom(UINT32 i) { if (i >= sizeof(robocop2jRomDesc) / sizeof(robocop2jRomDesc[0])) { return __null; } return robocop2jRomDesc + i; }
  9721. static INT32 robocop2jRomInfo(struct BurnRomInfo* pri, UINT32 i) { struct BurnRomInfo* por = robocop2jPickRom(i); if (por == __null) { return 1; } if (pri) { pri->nLen = por->nLen; pri->nCrc = por->nCrc; pri->nType = por->nType; } return 0; } static INT32 robocop2jRomName(char** pszName, UINT32 i, INT32 nAka) { struct BurnRomInfo *por = robocop2jPickRom(i); if (por == __null) { return 1; } if (nAka) { return 1; } *pszName = por->szName; return 0; }
  9722.  
  9723. struct BurnDriver BurnDrvRobocop2j = {
  9724.  "robocop2j", "robocop2", __null, __null, "1991",
  9725.  "Robocop 2 (Japan v0.11)\0", __null, "Data East Corporation", "DECO IC16",
  9726.  __null, __null, __null, __null,
  9727.  (1 << 0) | (1 << 4), 2, (0x13000000), (1 << 2), 0,
  9728.  __null, robocop2jRomInfo, robocop2jRomName, __null, __null, Robocop2InputInfo, Robocop2DIPInfo,
  9729.  Robocop2Init, DrvExit, CninjaFrame, Robocop2Draw, DrvScan, &DrvRecalc, 0x800,
  9730.  320, 240, 4, 3
  9731. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement